其他分享
首页 > 其他分享> > 代码重构之三种取代类型码(类、子类、状态对象或策略对象)的方式辨析

代码重构之三种取代类型码(类、子类、状态对象或策略对象)的方式辨析

作者:互联网

1.以类取代类型码
适用情况:类之中有一个数值类型码,但它并不影响类的行为
重构手段:以一个新的类替换该数值类型码。
重构类图示意:
在这里插入图片描述
这里的“不影响类的行为”是什么意思呢?
类型码往往和switch语句一起出现,只有当类型码不会在switch语句中引发行为变化时,才能以类来取代它。或者是根本没有条件语句。

2.以子类取代类型码
适用情况:你有一个不可变的类型码,它会影响类的行为。
重构手段:以类型码的宿主类为基类,并针对每一种类型码各创建一个子类。
重构类图示意:
在这里插入图片描述
Replace Type Code with Subclasses的主要做用实际上是搭建一个舞台,让Replace Conditional with Polymorphism得以一展身手。

3.以State/Strategy取代类型码
适用情况:你有一个类型码,它会影响类的行为,但你无法通过继承手法消除它。
重构手段:以状态对象或者具体策略对象取代类型码。
重构类图示意:
在这里插入图片描述
参考文章:
Replace Type Code with Class (以类取代类型码)
Replace Type Code with Subclasses (以子类取代类型码)
Replace Type Code with State/Strategy

标签:重构,取代,对象,子类,辨析,Replace,Code,类型
来源: https://blog.csdn.net/weixin_44997802/article/details/118065945