读书笔记1(Effective java)
博客专区 > 飞翼 的博客 > 博客详情
读书笔记1(Effective java)
飞翼 发表于3个月前
读书笔记1(Effective java)
  • 发表于 3个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 创建和销毁对象 ------------《考虑用静态工厂方法代替构造器》

优势:

1.有名称。

2.避免了每次调用他们都创建一个新的对象。

例子:


 public static Boolean valueOf(boolean b) {  
        return (b ? TRUE : FALSE);  

3.可以返回原类型的任何一个子类型对象

 

例子:


 public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType) {  
        Enum[] universe = getUniverse(elementType);  
        if (universe == null)  
            throw new ClassCastException(elementType + " not an enum");  
  
        if (universe.length <= 64)  
            return new RegularEnumSet<E>(elementType, universe);  
        else  
            return new JumboEnumSet<E>(elementType, universe);  
    }


  进一步解释:这样使用者就不关心到底要返回什么子类,只需要知道返回的是某个子类就可以了,具体实现和判断在父类中进行实现,从而有一天需要对所使用子类进行修改时不会引起代码大的冲突

 

4.创建一个参数化类型实例时,可以简化代码

缺点:

1.类如果不含有公有的或者受保护的构造器,就不能被继承。

2.与其他的静态方法没有区别,想具体的查看如何实体化一个类不方便。

共有 人打赏支持
粉丝 3
博文 62
码字总数 2835
×
飞翼
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: