Effective Java 1

    技术2022-05-11  77

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

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

    好处: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();       }    }}


    最新回复(0)