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

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

提炼子类(Extract Subclass)

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

一、动机

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

二、做法

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

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

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

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

5、Replace Conditional with Polymorphism

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

目录
相关文章
|
10月前
|
设计模式 存储 SQL
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
103 0
|
10月前
|
设计模式 存储 Java
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
174 0
|
10月前
|
设计模式 Java
【Java设计模式 规范与重构】 一 重构的目的、内容、时机、方法
【Java设计模式 规范与重构】 一 重构的目的、内容、时机、方法
120 0
|
10月前
《重构2》第十二章-继承
《重构2》第十二章-继承
92 0
|
设计模式 算法 NoSQL
还重构?就你那代码只能铲了重写!
一、前言 二、代码优化 1. 约定规范 2. 接口标准 3. 库表设计 4. 算法逻辑 5. 职责分离 6. 逻辑缜密 7. 领域聚合 8. 服务分层 9. 并发优化 10. 源码能力 三、总结 四、系列推荐
264 7
还重构?就你那代码只能铲了重写!
重构——63提炼超类(Extract Superclass)
提炼超类(Extract Superclass):两个类有相似特性;为这两个类建立一个超类,将相同的特性搬移到超类
1663 0
|
Java
重构——64提炼接口(Extract Interface)
提炼接口(Extract Interface):若干客户使用类接口中的同一子集,或者两个类的接口有部分相同;将相同的子类提炼到一个独立接口中
1482 0
重构——12提炼类(Extract Class)
提炼类(Extract Class):并发和事务的风险;某个类做了两个类做的事;建立一个新类,将相关的字段和函数从旧类搬移到新类
1895 0
重构——69梳理并分解继承体系(Tease Apart Inheritance)
梳理并分解继承体系(Tease Apart Inheritance):某个继承体系同时承担两项责任;建立两个继承体系,并通过委托关系让其中一个可以调用另一个
1027 0