某个类没有做太多事情。将这个类的所有特性搬移到另一个类中,然后移除原类

动机:Inline Class (将类内联化)正好于Extract Class (提炼类)相反。如果一个类不再承担足够责任、不再有单独存在的理由(这通常是因为此前的重构动作移走了这个类的责任),就挑选这个“萎缩类”的最频繁的用户(也是个类),以Inline Class (将类内联化)手法将“萎缩类”塞进另一个类中。

做法:1、在目标类身上声明源类的public协议,并将其中所有函数委托至源类。如果“以一个独立接口表示源类函数”更合适的话,就应该在内联之前先使用 Extract Interface (提炼接口)

2、修改所有源类引用点,改而引用目标类。将源类声明为private,以斩断包之外的所有引用可能。同时修改源类的名称,这便可使编译器帮助你捕捉到所有对源类的隐藏引用点。

3、编译、测试。

4、运用 Move Method (搬移函数)和Move Field (搬移字段),将源类的特性全部搬移到目标类。

5、删除源类。

最新文章

  1. Linux驱动学习之什么是驱动?
  2. OpenLDAP双主
  3. Control Flow
  4. 【PHP编程之路-1】设置apache虚拟目录
  5. 缺少编译器要求的成员“System.Runtime.CompilerServices.ExtensionAttribute..ctor” 解决方案
  6. 《Python基础教程(第二版)》学习笔记 -> 第十章 充电时刻 之 标准库
  7. java中的xpath,读取xml文档。
  8. iOS 专题 之 界面开发 之 控件
  9. html 框架 2017-03-11
  10. 【学习笔记】JS知识点整理
  11. Python的一些高级特性以及反序列化漏洞
  12. 一对多关联模型,BELONGS_TO
  13. HDU1848 Fibonacci again and again 博弈 SG函数
  14. 基于Air800+Arduino+ESP8266的混合物联网开发
  15. 开放重定向(Open Redirection)
  16. 115道Java经典面试题(面中率最高、最全)
  17. 【安装vsftpd】安装vsftpd工具步骤
  18. WebGL学习笔记三
  19. [BZOJ3583]杰杰的女性朋友(矩阵快速幂)
  20. (原)使用 memcache 使用过程中可能遇到的问题

热门文章

  1. TCP系列45—拥塞控制—8、SACK关闭的拥塞撤销与虚假快速重传
  2. int 和Integer
  3. java复利计算基本代码
  4. Java MD5加密类
  5. 某客的《微信小程序》从基础到实战视频教程
  6. Fiddler绕过前端直接和后台进行交互
  7. FZU2125_简单的等式
  8. HUST1017-Exact Cover
  9. Codeforces 786C Till I Collapse
  10. 【bzoj3573】[HNOI2014]米特运输 树形dp