Effective Java 1 用静态工厂方法代替构造器

知识点上本书需要会Java语法和lang、util、io库,涉及concurrent和function包。

内容上主要和设计模式相关,代码风格力求清晰+简洁,代码尽量复用,组件尽量少依赖,错误尽早发现。

第1个经验法则:用静态工厂方法代替构造器(consider static factory methods instead of constructors)

下面是Boolean的静态工厂方法:

一、静态工厂方法与构造器不同的第一大优势在于:它们有名称。

如果构造器的参数本身没有确切地描述正被返回的对象,那么具有适当名称的静态工厂会更容易使用,产生的客户端代码也更易于阅读。 什么意思呢?我们看一个例子:

假设我们有一个表示图书的类,它需要标题和作者作为创建对象的参数。

当我们想创建一本新书时,我们会这样调用构造器:

这个调用很直接,但方法名Book跟类名一样是个名词,没有传达出创建动作的任何特殊含义或上下文信息。

现在我们改用静态工厂方法来创建 Book 实例,并给这个方法一个有意义的名字,比如 createFromTitleAndAuthor ,代码看起来会是这样的:

创建同样一本《Effective Java》的书,现在代码变成了:

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值