美文网首页
第一条:用静态工厂方法代替构造器【创建和销毁对象start】

第一条:用静态工厂方法代替构造器【创建和销毁对象start】

作者: Js_Gavin | 来源:发表于2020-11-29 14:35 被阅读0次

    在Java中,对类而言,实例化一个对象的传统方式是提供公用的构造方法,还有一种方法就是,通过静态工厂的方式来获取一个对象的的实例。

    好处:

    1、静态工厂方法与构造器不同的第一大优势就是,它们有自己的名称。如果构造器没有确切的描述对象,可以适当的采用静态工厂来代替,那么在使用的时候,就会更加容易,代码也更加容易阅读。

    2、静态工厂方法与构造器不同的第二大优势是,在某些情况下,不必每次使用一个对象时,就创建它,可以通过静态工厂方法,返回单一的,不可变的对象。从而避免的不必要的重复对象。

    3、静态工厂方法与构造器不同的第三大优势是,可以返回原返回对象类型的子类型对象,在选择对象返回类型时提高代码灵活性。

    4、静态工厂方法与构造器不同的第四大优势是,返回的类型可以根据参数的不同,每次发生变化,只要是返回以声明返回对象类型的子类型对象即可。

    坏处:

    1、静态工厂方法的第一个缺点在于,类如果没有共有的构造器,或者构造器受保护,就不能被子类化(不能被其他类实现)。

    2、静态工厂方法的第二个缺点在于,很难找到目标工厂方法,因为没有像构造器一样在API中明确的标识出来。

    静态方法的惯用名称:

    Date date = Date.from(instant);
    
    BigInteger prime = BigInteger.valueOf(5L);  
    
    Object t = Class.newInstance();
    

    相关文章

      网友评论

          本文标题:第一条:用静态工厂方法代替构造器【创建和销毁对象start】

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