标签:
这章主要说了对象的 创建和销毁,怎样避免无谓,过多的对象,以及创建对象的几个方法
一.使用静态工厂方法代替构造器,
正常的创建类的方法 OneObject oneObject=new OneObject(); 这样写的话,每次都会创建一个新的对象
静态工厂方法
public class OneObject {
	
	private static  OneObject  oneObject=new OneObject();
    private String name;
public static OneObject getOneObject(){
    	return oneObject;
    };
}
1.这样写的话,不管使用几次 getOneObject() ,也只有一个OneObject 对象
2. 在增加一个方法 ,getOneObject2 ,其中TowObject,ThreeObjectshix是OneObject的子类对象
 public static OneObject getOneObject2(Integer type){
        if(type==1){
        	return new TowObject();
        }
        else{
        	return new ThreeObject();
        }
    };
这样 会根据参数的不同生成OneObject不同的子类
书上说还有几个好处,什么名字好记啊之类的就不意义列举了
二. 当Bean有很多属性时,可以考虑用构建器
package TheOne;
public class TwoObject {
	   private int a;
	   private int b;
	   private int c;
     public static class Bulider {
		private int a;
		private int b;
		private int c;
		public Bulider a(int a) {
			this.a = a;
			return this;
		}
		public Bulider b(int b) {
			this.b = b;
			return this;
		}
		public Bulider c(int c) {
			this.c = c;
			return this;
		}
		public TwoObject bulid() {
			return new TwoObject(this);
		}
	}
   public TwoObject(Bulider b){
	   this.a=b.a;
	   this.b=b.b;
	   this.c=b.c;
   }
   public static void main(String[] args) {
	 TwoObject to=new TwoObject.Bulider().a(1).b(2).bulid();
	 System.out.println(to.a);
}
}
这样写起来可读性性更高,但是也有一些缺点,就是构造Bulider的时候开销稍微高点,如果是注重性能的情况下,就不必考虑
标签:
原文地址:http://www.cnblogs.com/qiuyuedong/p/4682253.html