【Effective Java】1.静态工厂方法来替换构造函数

优点一:不像构造函数,它有具意的名称

因为可以取具意的名称,更容易明白如何使用,可读性也更好,

优点二:每次调用无需创建新的对象

优点三:允许返回子类对象

这些子类可以不为public ,这样可以打造出更加紧凑的API,虽然你有N种子类实现,这N种子类对于使用者来说是透明的,最终调用者拿到的是针对接口的对象,“interface-based framwork” == good practice;

缺点一:只有静态工厂方法而无构造函数无法被继承

缺点二:静态工厂方法不好和其他静态方法区分开来

两种策略来避免:

注释

使用静态工厂方法的常用名称

  • valueOf : 返回和传入的参数值相同的实例对象
  • of:valueOf的简写形式
  • getInstance
  • newInstance

总结:

通常静态工厂方法更具优势,所以不用静态工厂方法需要有充足的考虑才行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值