第二章 创建和销毁对象
第一条 使用静态工厂方法替代构造器,原因:
- 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的
- 静态工厂方法不用每次调用的时候都创建新的对象(其实是因为它是static的,所以只能用static的,所以是一早就创建了,不需要重复创建吧。。),比如书中 Boolean.valueOf(boolean)
1 public static final Boolean TRUE = new Boolean(true); 2 3 public static Boolean valueOf(boolean b) { 4 return (b ? TRUE : FALSE); 5 // 此处的TRUE和FALSE是早就创好的实例,不需要每次调用本方法时都去创建对象 6 }
- 静态工厂方法可以返回任何原类型的子类型的对象,?????
- 静态工厂方法,在创建参数化类型实例时,使代码更简洁。比如书中所说的
//假设HashMap提供了这个静态工厂: public static <K,V> HashMap<K,V> newInstance(){ return new HashMap<K,V>(); } //那么: Map<String,List<String>> m = HashMap.newInstance(); //比下面的更简洁: Map<String,List<String>> m = new HashMap<String,List<String>>();
时间: 2024-10-12 12:13:53