何时将条件转移语句改写为多态性
将条件转移语句改写为多态性是常用的代码重构方法。将一个进行多次条件转移的商业逻辑封装到不同的具体子类中去,从而使用多态性代替条件转移语句。
这种代码重构的方法是实现“开-闭”原则的重要途径,因为条件转移语句特别是大段的条件转移语句常意味着某种可变性。将这种可变性用多态性代替,意味着将这种可变性封装起来,从而带来系统在这种变化发生时的“开-闭”特性。
但是这种方法本身并不能保证实现“开-闭”原则,应当以“开-闭”原则为指导原则。因为:
任何语言都提供条件转移功能,条件转移本身并不是错误的,有适合的应用场景。
使用多态性代替条件转移意味着大量的类被创建。比如,一个类如果有三个方法,每个方法都有一个三段的条件转移语句。那么转换为多态性就要造出九个不同的类。这九种组合成员之间的关系很难理解。
何时使用这种重构方式
从“开-闭”原则出发,如果一个条件转移语句确实封装了某种商务逻辑的可变性,那么将此种可变性封装起来就符合“开-闭”原则设计思想。
如果一个条件转移语句没有涉及重要的商务逻辑,或者不会随着时间的变化而变化,也不意味着任何的可扩展性,那么它就没有任何有意义的可变性。此时重构为多态就是无意义的浪费。
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《何时将条件转移语句改写为多态性》
本文地址:http://www.xiupu.net/archives-7786.html
关注公众号:
微信赞赏
支付宝赞赏