静态工厂方法代替构造器的子类化问题

静态工厂代替构造器       

       1.静态工厂方法提供一个类似单例模式下获取类实例的方法来返回类的实例,此种方法代替了传统类的构造方法,那么其优势有四点:{

a 静态工厂方法有名称

b 不必在每次调用他们的时候都创建一个新的对象

c 他们可以返回类型的任何子类型的对象

d 在创建参数化类型的时候使代码更加简洁

}

      其缺点在于:

             1.类如果使用静态工厂方法取代构造器(共有的,受保护的)就不能被子类化。这里的子类化就是说:本使用静态工厂替代构造器提供实例对象的类A,不能作为父类被其他类继承

             2.静态工厂方法与其他静态方法没啥子区别,如果一个类采用静态工厂方法为外部用户提供类的实例而不是构造方法。这种设计在没有开发文档的情况下让开发者查明本类该如何实例化是非常困难的。所以,我们为静态工厂方法拟定了一些惯用名称

valueOf(类型转换方法)

of 基本同上

getInstance (单例)----newInstance(返回不同实例)

getType    ----- newType  一般用于指定返回实例的何种具体实现类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值