重构手法63:Extract Superclass (提炼超类)

2个类有相似特性。为这2个类建立一个超类,将相同特性移至超类

动机:重复代码是系统中最糟糕的东西之一。如果你在不同地方做同一件事情,一旦需要修改那些动作,你就得平白做更多的修改。

       重复代码的某种形式就是:2个类以相同的方式做类似的事情,或者以不同的方式做类似的事情。对象提供了一种简化这种情况的机制,那就是继承。但是,在建立这些具有共通性的类之前,你往往无法发现这样的共通性,因此常常会在具有共通性的类出现之后,再开始建立其间的继承结构。

       另一种选择就是 Extract Class(提炼类)。这2种方案之间的选择其实就是继承和委托之间的选择。如果2个类可以共享行为,也可以共享接口,那么继承是比较简单的做法。如果你选错了,也总有 Replace Inheritance with Delegation (以委托取代继承)这瓶后悔药可吃。

 

转载于:https://www.cnblogs.com/matchcolor/archive/2010/08/12/1786448.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值