重构——62提炼子类(Extract Subclass)

简介: 提炼子类(Extract Subclass):类中的某些特性只被某些实例用到;新建一个子类,将上面所说的那一部分特性移到子类中

提炼子类(Extract Subclass)

类中的某些特性只被某些实例用到;新建一个子类,将上面所说的那一部分特性移到子类中

一、动机

你发现类中的某些行为只被一部分实例用到,其他实例不需要它们

二、做法

1、为源类定义一个新的子类

2、为这个新的子类提供构造函数

3、找出调用超类构造函数的所有地点。如果它们需要的是新建的子类,令它们改而调用新的构造函数

4、逐一使用Push Down Method和Push Down Field将源类特性移到子类去

5、Replace Conditional with Polymorphism

6、每次下移后,编译并测试

目录
相关文章
|
设计模式 算法 Java
如何用函数式接口重构常见模式
如何用函数式接口重构常见模式
160 0
|
设计模式 存储 Java
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
194 0
|
设计模式 存储 SQL
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
122 0
《重构2》第十二章-继承
《重构2》第十二章-继承
115 0
|
设计模式 JSON 缓存
如何“好好利用多态”写出又臭又长又难以维护的代码?| Feeds 流重构方案
如何“好好利用多态”写出又臭又长又难以维护的代码?| Feeds 流重构方案
79 0
重构——63提炼超类(Extract Superclass)
提炼超类(Extract Superclass):两个类有相似特性;为这两个类建立一个超类,将相同的特性搬移到超类
1740 0
|
Java
重构——64提炼接口(Extract Interface)
提炼接口(Extract Interface):若干客户使用类接口中的同一子集,或者两个类的接口有部分相同;将相同的子类提炼到一个独立接口中
1511 0
重构——12提炼类(Extract Class)
提炼类(Extract Class):并发和事务的风险;某个类做了两个类做的事;建立一个新类,将相关的字段和函数从旧类搬移到新类
1946 0
重构——69梳理并分解继承体系(Tease Apart Inheritance)
梳理并分解继承体系(Tease Apart Inheritance):某个继承体系同时承担两项责任;建立两个继承体系,并通过委托关系让其中一个可以调用另一个
1049 0