博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目重构
阅读量:4520 次
发布时间:2019-06-08

本文共 1131 字,大约阅读时间需要 3 分钟。

 背景 :函数上千行代码,类巨大,高耦合。业务发展到一定阶段,原来的程序设计不能满足业务需求,或者经过多遍更改后,存在大量冗余的逻辑代码;新的架构设计,进行业务拆分。

 重构是在不改变项目现有的业务逻辑或者代码逻辑的基础上对程序进一步提炼或者扩展,使其结构化,代码规范化,弱耦合。非常重要的一点。

糟糕的类型:

1)重复代码;

2)过长的函数(一般超过200行),需要积极的拆分子函数;

3)过大的类,类越大,职责就越多,导致类产生的实例也会越多。同时,职责越多的类,其修改后影响也就越大。

4)过长的参数列表,如果参数过多,或者变化太过频繁,考虑用对象替换参数列表;

5)发散式变化,如果类经常在不同的方向上发生变化,考虑将类拆分。

6)散弹式修改,与发散式变化刚好相反,如果遇到某种变化要修改很多地方,可以考虑将变化的抽到同一个类中。

7)依恋情结,就是如果某个函数功能需要调用另一个类中的大半变化,可以考虑将这个函数抽到变化的类中。

8)数据泥团,数据项总是喜欢成群结队的聚在一起,可以考虑对数据项抽象对象。

9)平行继承体系,就是为某个类增加一个子类的时候,也必须为另一个类增加子类,这时候可以考虑让一个继承体系引用另一个继承体系。

10)冗赘类

11)夸夸其谈的未来性,就是设计的时候过多考虑未来,导致现有的类设计复杂

12)过度耦合的消息链。

    I. 小步前进,频繁测试

1)重新提炼函数,是最常见的重构手法;

2)内联函数或者临时变量,就是收缩函数或者临时变量。比如内联临时变量的时候,直接用返回函数的表达式代替临时变量。

3)用函数对象取代函数,就是将函数放到单独的对象中,这样局部变量就变成里对象字段,有助于拆分函数。

4)替换算法,用另一个更清晰的算法替换到现有算法。

    II. 在对象之间搬移特性

1)搬移函数,就是将现有函数的实现逻辑搬移到一个新的常引用的类中,在本类中建立一个委托函数,调用新类中的新函数。

2)搬移字段,

3)提炼类,建一个新类,将相关的字段和函数从旧类中搬移;

4)移除中间人

5)引入外加函数,就是在提供类中创建一个函数,但是并不改变提供类。

6)以对象取代数据值,就是将数据项封装为对象。

7)将值引用替换为对象引用,或者将对象引用替换为值引用。

8)条件表达式分解,即条件变为函数。

9)用return表示条件结束,即使用卫语句,要么结束,要么抛出异常。

10)引入Null对象,引入断言

原文:https://blog.csdn.net/chenwiehuang/article/details/79951625 

转载于:https://www.cnblogs.com/facker1/p/10608909.html

你可能感兴趣的文章
洛谷P1461 海明码 Hamming Codes
查看>>
ZOJ2833*(并查集)
查看>>
外连接简要总结
查看>>
第一次作业-准备篇
查看>>
【C++】继承时构造函数和析构函数
查看>>
shader一些语义或术语的解释
查看>>
opencv源代码之中的一个:cvboost.cpp
查看>>
Android通过泛型简化findViewById类型转换
查看>>
swift
查看>>
eclipse maven 插件的安装和配置
查看>>
mysql基本知识总结
查看>>
php的zend引擎执行过程 一
查看>>
pycharm 快捷键
查看>>
Linux常用命令
查看>>
AutoFac IoC DI 依赖注入
查看>>
.net中的设计模式---单例模式
查看>>
安装程序工具 (Installutil.exe)22
查看>>
python 学习(pip工具的安装)
查看>>
博客园在我的博客添加点击小心心特效
查看>>
如何简单解释 MapReduce算法
查看>>