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

[b]1 考虑用静态工厂方法替代构造器
类可以提供一个公有的静态工厂方法,他只是一个返回类的实例的静态方法。[/b]

[b]实例受控类[/b]
public static Boolean valueOf(boolean b)
{
return b ? Boolean.TRUE : Boolean.FALSE;
}


[b]编写实例受控类有几个原因。实例受控使得类可以确保他是一个Singleton或者是不可实例化的。他还使得不可变类可以确保不会存在两个相等的实例。

API可以返回对象,同时又不会使对象的类变成公有的。以这种方式隐藏实现类会使API变得非常简介。这种结束适用于基于接口的框架(java.util.Collections)
[/b]


[b]这样做有几大优势。
[list]
[*]他们有名称。
[*]不必再为每次调用他们都创建一个新对象。
[*]他们可以返回原返回类型的任何子类型的对象。
[*]在创建参数化类型实例的时候,他们是代码变得更加简洁。
[/list][/b]
[b]静态工厂方法的缺点
[list]
[*]类如果不含公有的或者受保护地构造器,就不能被子类化。
[*]他们与其他的静态方法实际上没有任何区别。
[/list][/b]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值