Effective Java 1

第一条:用静态工厂方法代替构造函数

工厂方法只是一个简单的静态方法,它返回的是类的一个实例。

好处:
1、静态工厂方法的一个好处是,与构造函数不同,静态工厂方法具有名字。
2、它们每次被调用的时候,不要求非得创建一个新的对象。
3、它们可以返回一个原返回类型的子类型的对象。(这一点在Collections Framework里体现得淋漓尽致

缺点:
1、它们与其它的静态方法没有任何区别。(所以要在文档中加上特殊说明)
2、类如果不含有公有的或者受保护的构造函数,就不能被除数子类化。(我这觉得这倒好,鼓励我们尽

量使用复合结构而不是继承)

常用方法名:
valueOf----------该方法返回的实例与它的参数具有同样的值
如:
    public static Boolean valueOf(boolean b) {
          return (b?Boolean.TRUE:Boolean.FALSE);
    }
getInstance------返回的实例是由方法的参数来描述的,但不能说与参数具有同样的值
如:
    public static Foo getInstance(String key) {
    initMapIfnessary();
    Class c = (Class)implementations.get(key);
    if(c==nul)
                return new DefaultFoo();
    try {
                return (Foo)c.newInstance();
       }catch(Exception e) {
                return new DefaultFoo();
       }
    }
}

阅读更多
个人分类: J2EE
上一篇殊途同归 四个程序员的一天
下一篇Effective Java 2
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭