重构改善既有代码设计--重构手法13:Inline Class (将类内联化)

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

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

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

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

       3、编译、测试。

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

       5、删除源类。

 

posted on   pony1223  阅读(551)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示