第一条:考虑用静态工厂方法代替构造器
//打印机工厂
public Class PrintFactory{
public PrintFactory(){
}
public static MyPrinter createPrinter(String printerName){
if("hp".equals(printerName)){
return new HpPrinter();
}else if("Cannon".equals(printerName)){
return new CannonPrinter();
}
return null;
}
}
//反射的方法
public static MyPrinter createPrinter(Class<? extends MyPrinter> clazz){
return clazz.newInstance();
}
第二条:遇到多个构造器参数时要考虑用构建器
第三条:用私有构造器或者枚举类型强化Singleton属性
第四条:通过私有构造器强化不可实例的能力
第五条:避免创建不必要的对象
第六条:消除过期的对象引用
第七条:避免使用终结方法