重构——63提炼超类(Extract Superclass)

简介: 提炼超类(Extract Superclass):两个类有相似特性;为这两个类建立一个超类,将相同的特性搬移到超类

提炼超类(Extract Superclass)

两个类有相似特性;为这两个类建立一个超类,将相同的特性搬移到超类

一、动机

减少重复代码

二、做法

1、为原本的类新建一个空白的抽象超类

2、运用Pull Up Field,Pull Up Mehtod,Pull Up Constructor Body逐一将子类的共同元素上移到超类

3、每次上移后,编译并测试

4、检查留在子类中的函数,Extract Method,Pull Up Method,也许可以Form Template Method

5、将所有共同元素都上移到超类后,检查子类的所有用户。如果它们只使用共同接口,你就可以把它们请求的对象改为超类

目录
相关文章
|
Java
Java面向对象三大特征之一继承(轻装上阵的子类们)含有查看继承关系快捷键
继承是类和类之间的关系。除此之外,类之间还有依赖、组合、聚合等关系
131 0
Java面向对象三大特征之一继承(轻装上阵的子类们)含有查看继承关系快捷键
重构——62提炼子类(Extract Subclass)
提炼子类(Extract Subclass):类中的某些特性只被某些实例用到;新建一个子类,将上面所说的那一部分特性移到子类中
1359 0
重构——68以继承取代委托(Replace Delegation with Inheritance)
以继承取代委托(Replace Delegation with Inheritance):你在两个类之间使用委托关系,并经常为整个接口编写许多极简单的委托关系;让委托类继承受托类
1130 0
重构——67以委托取代继承(Replace Inheritance with Delegation)
以委托取代继承(Replace Inheritance with Delegation) 1、某个子类只使用了超类接口中的一部分,或是根本不需要继承而来的数据 2、在子类中新建一个字段用以保存超类;调整子类函数,令它改而委托超类;然后去掉两者之间的继承关系
2107 0
|
Java
重构——64提炼接口(Extract Interface)
提炼接口(Extract Interface):若干客户使用类接口中的同一子集,或者两个类的接口有部分相同;将相同的子类提炼到一个独立接口中
1482 0
重构——12提炼类(Extract Class)
提炼类(Extract Class):并发和事务的风险;某个类做了两个类做的事;建立一个新类,将相关的字段和函数从旧类搬移到新类
1898 0
重构——1提炼函数(Extract Method)
提炼函数(Extract Method):你有一段代码可以被组织在一起并独立出来,将这段代码放进一个独立的函数中,并让函数名称解释该函数的用途。
1215 0
重构——69梳理并分解继承体系(Tease Apart Inheritance)
梳理并分解继承体系(Tease Apart Inheritance):某个继承体系同时承担两项责任;建立两个继承体系,并通过委托关系让其中一个可以调用另一个
1027 0
重构——33以字段取代子类(Replace Subclass with Fields)
以字段取代子类(Replace Subclass with Fields):你的各个子类的唯一差别只在“返回常量数据”的函数上:修改这些函数,使他们返回超类的某个新增字段,然后销毁子类
1232 0