读书笔记之《effective java》----静态工厂方法代替构造器

《effectiv java》是一本经典的java类的书籍,它可以教我更加高效的编写代码。

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

----就像标识一样,可以通过名字,很快的找到它,把软件想象成一个家庭,用它的时候,直接用名字叫“嘿,老三,我要用你的刀和菜板”,用到二胖的时候就叫“嘿,二胖,我要用你的锅和碗”。

 一个类只能有一个带有指定签名的构造器 。如果想要另一个构造器,只需要参数列表顺序不同即可,但这种方法不太好记,没有名字好叫,二胖,老三的有指向性。

我遇到过一个问题,已经有一个A(String name,String phone)这样一个构造器,我想有另一个A(String attr,String email)这样就会创建失败,如果用上静态工厂方法就好说了

@Data
@Builder
public class BlackListEntity {
    // 唯一标识
    private Integer pkid;
    // 黑名单的url
    private String blackUrl;
    // 静态工厂方法
    public static BlackListEntity getInstance(String blackUrl){
        BlackListEntity build = BlackListEntity.builder().blackUrl(blackUrl).build();
        return build;
    }
}

 第二大优势:不必在和线次调用它们时都创建一个新对象

与单例有关

静态工厂方法与构造器不同的第三大优势在于:它们可以返回原返回类型的任何子类型的对象

return 子类();

这个总结的不错,我已经用到项目中了只是只用到了优点是名称的部分,所以没办法很深入的写另外的部分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值