重构——65折叠继承体系(Collapse Hierarchy)

简介: 折叠继承体系(Collapse Hierarchy):超类和子类之间无太大区别;将它们合为一体

折叠继承体系(Collapse Hierarchy)

超类和子类之间无太大区别;将它们合为一体

一、动机

1、继承体系很容易变得过分复杂

2、重构了继承体系后,有些类没有用了,需要把子类和超类合并起来

二、做法

1、选择想要移除的类:是超类还是子类

2、Pull Up Field,Pull Up Method或者 Push Down Method, Push Down Field

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

4、调整即将被移除的那个类的所有引用点,令它们改而引用合并后留下的类。这个动作将会影响变量的声明,参数的类型及构造函数

5、移除我们目标:此时的它应该已经成为了一个空类

6、编译,测试

目录
相关文章
|
前端开发 容器
View的测量、布局和绘制过程中父View(当前View)和子View的先后顺序
View的测量、布局和绘制过程中,到底是先测量(布局、绘制)父View,还是先测量子View,这篇文章会从源码角度给出答案。
Winform控件优化之继承Control重写实现Layer遮罩层
通过继承Control控件类,进行重写,实现Layer效果的遮罩层,具体使用可直接看后面的介绍。主要功能如下:1. 遮罩层的透明度Alpha,默认125。255表示不透明。2. 设置遮罩层中心的图片
663 0
Winform控件优化之继承Control重写实现Layer遮罩层
|
前端开发
解决鼠标经过覆盖于低层级div的高层级div,依旧会触发低层级的hover属性的问题
解决鼠标经过覆盖于低层级div的高层级div,依旧会触发低层级的hover属性的问题
253 0
解决鼠标经过覆盖于低层级div的高层级div,依旧会触发低层级的hover属性的问题
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
C++编程练习:多态实验——设计一个基类Shapes,Shapes类公有派生产生矩形类Rectangle和圆类Circle
|
测试技术
软件测试面试题:如何通过子元素定位父元素?
软件测试面试题:如何通过子元素定位父元素?
287 0
|
开发者 索引
SwiftUI极简教程27:DisclosureGroup拓展折叠视图的使用
SwiftUI极简教程27:DisclosureGroup拓展折叠视图的使用
634 0
SwiftUI极简教程27:DisclosureGroup拓展折叠视图的使用
|
数据可视化 定位技术 计算机视觉
qml开发笔记(三):可视化元素基类Item详解(下半场)
qml开发笔记(三):可视化元素基类Item详解(下半场)
qml开发笔记(三):可视化元素基类Item详解(下半场)
|
数据可视化 计算机视觉
qml开发笔记(二):可视化元素基类Item详解(上半场anchors等等)
qml开发笔记(二):可视化元素基类Item详解(上半场anchors等等)
qml开发笔记(二):可视化元素基类Item详解(上半场anchors等等)
|
Web App开发 前端开发 iOS开发
使用 tabindex 配合 focus-within 巧妙实现父选择器
使用 tabindex 配合 focus-within 巧妙实现父选择器
167 0
|
前端开发
SwiftUI—使用ViewModifier视图修饰符集成多个样式
SwiftUI—使用ViewModifier视图修饰符集成多个样式
382 0
SwiftUI—使用ViewModifier视图修饰符集成多个样式