第一条:用静态工厂方法代替构造函数
工厂方法只是一个简单的静态方法,它返回的是类的一个实例。
好处: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(); } }}