重构改善既有代码设计--重构手法13:Inline Class (将类内联化)
2024-10-13 13:25:02
某个类没有做太多事情。将这个类的所有特性搬移到另一个类中,然后移除原类。
动机:Inline Class (将类内联化)正好于Extract Class (提炼类)相反。如果一个类不再承担足够责任、不再有单独存在的理由(这通常是因为此前的重构动作移走了这个类的责任),就挑选这个“萎缩类”的最频繁的用户(也是个类),以Inline Class (将类内联化)手法将“萎缩类”塞进另一个类中。
做法:1、在目标类身上声明源类的public协议,并将其中所有函数委托至源类。如果“以一个独立接口表示源类函数”更合适的话,就应该在内联之前先使用 Extract Interface (提炼接口)
2、修改所有源类引用点,改而引用目标类。将源类声明为private,以斩断包之外的所有引用可能。同时修改源类的名称,这便可使编译器帮助你捕捉到所有对源类的隐藏引用点。
3、编译、测试。
4、运用 Move Method (搬移函数)和Move Field (搬移字段),将源类的特性全部搬移到目标类。
5、删除源类。
最新文章
- Linux驱动学习之什么是驱动?
- OpenLDAP双主
- Control Flow
- 【PHP编程之路-1】设置apache虚拟目录
- 缺少编译器要求的成员“System.Runtime.CompilerServices.ExtensionAttribute..ctor” 解决方案
- 《Python基础教程(第二版)》学习笔记 ->; 第十章 充电时刻 之 标准库
- java中的xpath,读取xml文档。
- iOS 专题 之 界面开发 之 控件
- html 框架 2017-03-11
- 【学习笔记】JS知识点整理
- Python的一些高级特性以及反序列化漏洞
- 一对多关联模型,BELONGS_TO
- HDU1848 Fibonacci again and again 博弈 SG函数
- 基于Air800+Arduino+ESP8266的混合物联网开发
- 开放重定向(Open Redirection)
- 115道Java经典面试题(面中率最高、最全)
- 【安装vsftpd】安装vsftpd工具步骤
- WebGL学习笔记三
- [BZOJ3583]杰杰的女性朋友(矩阵快速幂)
- (原)使用 memcache 使用过程中可能遇到的问题