重构—改善既有代码的设计5——重构列表

1.寻找引用点

  盲目查找、替换,出错机会高。不同类中使用相同的函数名称;同一个类中使用名称相同、签名不同的函数。

  直接删除旧的部分,让编译器帮你找出引用点。好处:编译器会找到所有引用点。

    问题:

      被删除部分在继承体系张声明不止一次,编译器也会被迷惑(覆写多次的函数)。如果在一个继承体系中,先利用文本查找工具,检查是否由其他类声明了你正在处理的哪个函数

      编译器可能太慢,使工作失去效率。先用文本查找工具,编译器可复查:先观察这一部分运用情况

      编译器无法找到通过反射机制而得到的引用点。小心使用反射。使用文本查找工具,测试分量加重;通常建议只编译,不测试,因为编译器通常会捕捉到可能的错误;使用反射,所有的便利都没有了,必须为许多编译搭配测试。

      某些Java开发环境,可使用菜单选项来查找引用点,而不是使用文本查找工具,因为这些开发环境并不以文本文件保存代码,而是使用一个内置数据库。

2.重构成熟度

  基本技巧:小步前进,频繁测试

  让重构手法适应你自己的情况。“使用某个重构手法”不同于“将它浓缩成可重复的做法步骤”

  前提:单进程软件。

    单进程:永远不必操心频繁调用某个函数,因为函数的调用成本很低

    分布式:函数往返必须被减至最低限度。

  引入设计模式,设计模式为重构行为提供了目标,模式和重构之间有着一种与生俱来的关系。

    例如:replace type code with state/strategy、form template method 

    模式:希望到达的目标;重构:到达之路

  重构仅仅是一个起点,尽管不完美,但是有用

  发展属于自己的重构手法,使用自己的创造力

 

posted @   PanPan003  阅读(200)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
点击右上角即可分享
微信分享提示