重构与模式——用Creation Method替换构造函数

 

         首先,介绍一下什么是Creation Method。所谓Creation Method,就是类中的一个静态的或非静态的负责实例化类的新实例的方法。其目的是为了代替构造函数,使用Creation Method的原因在于构造函数本身的局限性。构造函数的主要缺陷在于:构造函数的名称必须与类名相同,因此构造函数本身无法有效和高效地表达意图。而Creation Method没有命名限制,所以可以取一些能够清晰表达所创建对象性质的名称来更清楚的表达意图。

         下面就用一个简短的示例来说明一下问题:

          首先定义一个Shape类,其中有两个构造函数

         第一构造函数创建了一个圆形图像,第二个构造函数创建了一个矩形图像。现在问题来了,这个类的调用者在实例化时看到这两个构造函数已经晕头转向了。想象一下如果程序中需要更多的图形,那就需要更多的构造函数,那意图就更加模糊了。如果碰巧两个构造函数的签名相同了又该怎么办?那么现在就是用Create Method来重构一下,看看能达到什么效果。下面给出重构后的代码:

         这样类的调用者可以轻松的根据方法名称来创建自己所需要的图形了。即使有更多的图形,也可以使用具有明确名称的Creation Method来创建,同时构造函数的签名冲突也迎刃而解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值