啊,如何遵循“低耦合”设计原则?

1. 引言

类的设计需要遵循“高内聚、低耦合”的设计原则(或者说“高内聚、松耦合”)。在之前的文章里介绍过什么是高内聚和低耦合(设计模式(三)——面向对象设计原则

高内聚:内聚是对软件系统中元素职责相关性和集中度的度量。如果元素具有高度相关的职责,除了这些职责内的任务,没有其它过多的工作,那么该元素就具有高内聚性;反之则成为低内聚性。

低耦合:耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据

某种程度上理解,高内聚低耦合也是单一职责原则、迪米特法则的另一种体现。结合项目上开发的经历,要将一个类设计为高内聚和低耦合的类,或者尽可能接近,从设计角度而言并不难。难的是实现和后期应对临时需求和corner case而增加的改动。当然,说白了这也是没有良好设计种下的苦果。

2. 违背“低耦合”的设计示例

考虑如下一个示例:按钮控制点灯开关

#include <iostream>

#define ON  true
#define OFF false

class Lamp
{
public:
    void on() {
        // ...
    }
    void off() {
        // ...
    }
};

clas
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

冯Jungle

您的支持是对我最大的鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值