美文网首页
第一条,考虑静态工厂类代替构造器

第一条,考虑静态工厂类代替构造器

作者: 山楂mm | 来源:发表于2017-12-19 00:27 被阅读0次

用静态工厂类代替构造器有4个优点:

  1. 静态工厂类有自己的名称,可以望文生义,清楚创建实例的错用
  2. 采用静态工厂类创建实例的时候,可以不总创建新的实例。比如单列模式
  3. 静态工厂类创建实例可以返回它们的子类型,可以不关心实例的具体实现。例如:
 public class Fruit {
     private Fruit(){}

     public static Fruit(int color) {
         if(color == 0) {
            return new Apple();
         } else {
            return new Orange();
         }
     }
}
  1. 采用静态工厂类创建实例可以使代码更简洁。例如可以简化复杂的API。

用静态工厂代替构造器有2个缺点

  1. 由于没有公有的或者受保护的构造函数,该类不能被子类化,也就是该类不能被继承。
  2. 由于静态工厂类和普通类没有区别,所有要查明该类是如何实例化的比较困难。

相关文章

  • 创建和销毁对象

    1,考虑用静态工厂方法代替构造器 切忌第一反应就是提供共有构造器,而不先考虑静态工厂。 类可以通过静态工厂方法返回...

  • effective java读书笔记

    一、考虑用静态工厂方法代替构造器1.静态工厂方法有名称,而构造器只能是类名 private Map > map =...

  • EffectiveJava第2章-创建和销毁对象

    第1条:考虑使用静态工厂方法代替构造器 获取类实例的两种方法:公有的构造器、公有的静态工厂方法返回类的实例。 静态...

  • Effective Java第二章读书笔记

    第一条:考虑静态工厂方法代替构造器 静态工厂方法的优势: 有名称(例子中的probablePrime) 不必每次调...

  • Java创建和销毁对象

    考虑用静态工厂方法代替构造器 静态工厂方法可以通过静态获取类的一个实例,而不需要通过构造器; 使用静态工厂方法的优...

  • Effective Java刷书笔记---静态工厂方法

    Effective Java刷书笔记---静态工厂方法 类实例获取--“考虑”用静态工厂方法代替构造器对于一个类而...

  • 第一条 考虑用静态工厂方法代替构造器

    创建和销毁对象 考虑用静态工厂方法代替构造器 一般使用构造器 使用静态方法 这样写的优势 静态方法有名字构造器与类...

  • 创建和销毁对象

    第一条:考虑用静态工厂方法代替构造器。 第二条:遇到多个构造器参数时要考虑用构造器。 第三条:用私有构造器或者枚举...

  • 第二章、创建和销毁对象

    第一条:考虑静态工厂方法代替构造器 静态工厂方法与构造器相比的优势: 有名称;不必再每次调用他们的时候都创建一个新...

  • 《Effective Java》之 对象的创建和销毁

    对象的创建和销毁 第一条 用静态工厂方法来代替构造器 类除了可以通过构造器来实例化之外,还可以通过静态的工厂方法(...

网友评论

      本文标题:第一条,考虑静态工厂类代替构造器

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