[Effective Java 读书笔记] 第二章 创建和销毁对象 第一条

时间:2023-03-09 08:26:23
[Effective Java 读书笔记] 第二章 创建和销毁对象 第一条

第二章  创建和销毁对象

第一条 使用静态工厂方法替代构造器,原因:

  1. 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的
  2. 静态工厂方法不用每次调用的时候都创建新的对象(其实是因为它是static的,所以只能用static的,所以是一早就创建了,不需要重复创建吧。。),比如书中 Boolean.valueOf(boolean)
         public static final Boolean TRUE = new Boolean(true);
    
         public static Boolean valueOf(boolean b) {
    return (b ? TRUE : FALSE);
    // 此处的TRUE和FALSE是早就创好的实例,不需要每次调用本方法时都去创建对象
    }
  3. 静态工厂方法可以返回任何原类型的子类型的对象,?????
  4. 静态工厂方法,在创建参数化类型实例时,使代码更简洁。比如书中所说的
    //假设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>>();