Effective Java 1

第一条:用静态工厂方法代替构造函数

工厂方法只是一个简单的静态方法,它返回的是类的一个实例。

好处:
1、静态工厂方法的一个好处是,与构造函数不同,静态工厂方法具有名字。
2、它们每次被调用的时候,不要求非得创建一个新的对象。
3、它们可以返回一个原返回类型的子类型的对象。(这一点在Collections Framework里体现得淋漓尽致

缺点:
1、它们与其它的静态方法没有任何区别。(所以要在文档中加上特殊说明)
2、类如果不含有公有的或者受保护的构造函数,就不能被除数子类化。(我这觉得这倒好,鼓励我们尽

量使用复合结构而不是继承)

常用方法名:
valueOf----------该方法返回的实例与它的参数具有同样的值
如:
    public static Boolean valueOf(boolean b) {
          return (b?Boolean.TRUE:Boolean.FALSE);
    }
getInstance------返回的实例是由方法的参数来描述的,但不能说与参数具有同样的值
如:
    public static Foo getInstance(String key) {
    initMapIfnessary();
    Class c = (Class)implementations.get(key);
    if(c==nul)
                return new DefaultFoo();
    try {
                return (Foo)c.newInstance();
       }catch(Exception e) {
                return new DefaultFoo();
       }
    }
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值