重构-过多的变化和过度依赖

  • 过多的变化

我们总是希望自己写的软件是“高内聚、低耦合”的,所谓耦合指的是两个类或者多个类之间的关系,当一个类发生变化的,其他的类同时也会发生变化。而我们希望的是,类与类之间关系尽量避开这样变化。而是当其中一个类发生变化时,与其他的类不受影响。也就是说变化只发生在自己的内部,这就是高内聚。

以上是类与类之间的关系。那么一个类内部之间会不会也会有这样的变化呢?

也就是当我们给这个类添加一个新的功能或者添加一个新的变量的时候,往往会引起其他多个函数同时变化,如果修改的代码分散到各地,有时会很难找到他,也会很容易忘记修改某个重要的内容。我们希望的是:针对外界的变化所做的相应的修改,都只应该发生在单一类中,而这个类中的变化,都会反映到这个类所生成的所有的对象中。

此时我们就应该考虑要把这个类整理一下,是其一个类的变化,尽量由一处引起。或者把这个类分解成多个类。

  • 过度依赖

C++面向对象技术一个重要的特点就是封装,也就是“把数据和对数据的行为包装在一起”。有时会出现这样的情况,A类中的某个函数,对B类的操作性更高,或者说和B类的关联更加紧密。一个经典的场景:为了计算某个值,我们会调用另外一个类中的好多函数。

遇到以上情况,我们可以尝试着将总是一起变化的东西放到一块。数据和操作这些数据的函数总是在一起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wb175208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值