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

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

提炼子类(Extract Subclass)

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

一、动机

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

二、做法

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

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

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

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

5、Replace Conditional with Polymorphism

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

目录
相关文章
|
设计模式 存储 Java
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(下)
187 0
|
设计模式 存储 SQL
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
【Java设计模式 规范与重构】 五 重构实战:基于ID生成器case(上)
113 0
《重构2》第十二章-继承
《重构2》第十二章-继承
105 0
|
前端开发
前端学习案例9-寄生组合继承2
前端学习案例9-寄生组合继承2
37 0
前端学习案例9-寄生组合继承2
|
前端开发
前端学习案例8-寄生组合继承1
前端学习案例8-寄生组合继承1
53 0
前端学习案例8-寄生组合继承1
|
前端开发
前端学习案例7-寄生组合继承1
前端学习案例7-寄生组合继承1
56 0
前端学习案例7-寄生组合继承1
|
设计模式 算法 NoSQL
还重构?就你那代码只能铲了重写!
一、前言 二、代码优化 1. 约定规范 2. 接口标准 3. 库表设计 4. 算法逻辑 5. 职责分离 6. 逻辑缜密 7. 领域聚合 8. 服务分层 9. 并发优化 10. 源码能力 三、总结 四、系列推荐
274 7
还重构?就你那代码只能铲了重写!
重构——63提炼超类(Extract Superclass)
提炼超类(Extract Superclass):两个类有相似特性;为这两个类建立一个超类,将相同的特性搬移到超类
1710 0
|
Java
重构——64提炼接口(Extract Interface)
提炼接口(Extract Interface):若干客户使用类接口中的同一子集,或者两个类的接口有部分相同;将相同的子类提炼到一个独立接口中
1499 0