1.考虑用静态工厂方法代替构造器

1.考虑用静态工厂方法代替构造器

 

   例子:

 

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

 使用静态工厂替代构造器的优势:

1)他们有名称

2)不必每次调用都产生新的对象

  3)可以返回原返回类型任何子类型的对象

4)创建参数化类型实例的时候,使代码更简洁

缺点:1)类如果不含公有的或者受保护的构造器,就不能被子类化

 2)与其他的静态方法没有任何区别:API中没有特殊标明,因此很难查找如何实例化一个类。

 

静态工厂方法的惯用名称

*valueOf--该方法返回的实例与它的参数具有相同的价值。这样的静态工厂方法实际上是类型转换方法。

*of--valueOf的一种更为简洁的替代

*getInstance--返回的实例是通过方法的参数来描述的,但是不能说具有与参数同样的值。对于singeton来说,该方法     没有参数,并返回唯一实例

*newInstance--像getInstance一样,但newInstance能确保返回的每个实例都与其他实例不同

*getType--像getInstance一样,但是在工厂方法处于在不同的类中时使用。Type表示工厂方法所返回的对象类型

*newType--像newInstance一样,但是在工厂方法处于在不同的类中时使用。Type表示工厂方法所返回的对象类型

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值