美文网首页
Effective Java重点笔记--第一条 考虑使用静态工厂

Effective Java重点笔记--第一条 考虑使用静态工厂

作者: DX5 | 来源:发表于2016-08-30 14:34 被阅读0次
    • 静态工厂方法定义:
      返回类实例的静态方法,与设计模式中的工厂方法模式不同。
    • 优点:
      1. 静态工厂方法有名称。我们可以通过不同的名称来区分参数列表不同的构造器,这样显然更加的清楚,便于用户理解。
      2. 不必在每次调用时创建一个新的对象。重复利用对象,避免重复创建相同的对象,提升性能。
      3. 可以返回类型的任何子类型的对象。我们在选择返回对象的类型时,有了更大的灵活性。适用于基于接口的的框架。
      4. 使代码变得更加简介。如:
        <code>Map<String,List<String>> m=new HashMap<String,List<String>>();
        //可更换为
        Map<String,List<String>> m=HashMap.newInstance();</code>
    • 缺点:
      1.** 一个类如果不含有public或者protect的构造器,就不能被子类继承。**
      2.静态工厂方法与普通静态方法没有任何区别,在API文档中不会被明确标识出来。所以在查询使用静态工厂方法创建实例对象时,会十分困难。
    • 静态工厂方法的管用名称:
    1. ValueOf——类型转换方法,返回与参数具有相同值的实例。
    2. of——同上
    3. getInstance——返回通过参数描述的实例,对Singleton来说,永远返回唯一的实例。
    4. newInstance——确保返回的每个实例都与其他实例不同
    5. getType——像getInstance一样,但是在工厂方法处于不同的类中的时候使用。
    6. newType——像newInstance一样,但是在工厂方法处于不同的类中的时候使用。

    相关文章

      网友评论

          本文标题:Effective Java重点笔记--第一条 考虑使用静态工厂

          本文链接:https://www.haomeiwen.com/subject/dgvfettx.html