码迷,mamicode.com
首页 > 编程语言 > 详细

Effective java 第二章 对象 (1)

时间:2015-07-28 12:21:59      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

这章主要说了对象的 创建和销毁,怎样避免无谓,过多的对象,以及创建对象的几个方法

 一.使用静态工厂方法代替构造器,

正常的创建类的方法    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的时候开销稍微高点,如果是注重性能的情况下,就不必考虑

 

Effective java 第二章 对象 (1)

标签:

原文地址:http://www.cnblogs.com/qiuyuedong/p/4682253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!