1. 引言
类的设计需要遵循“高内聚、低耦合”的设计原则(或者说“高内聚、松耦合”)。在之前的文章里介绍过什么是高内聚和低耦合(设计模式(三)——面向对象设计原则)
某种程度上理解,高内聚低耦合也是单一职责原则、迪米特法则的另一种体现。结合项目上开发的经历,要将一个类设计为高内聚和低耦合的类,或者尽可能接近,从设计角度而言并不难。难的是实现和后期应对临时需求和corner case而增加的改动。当然,说白了这也是没有良好设计种下的苦果。
2. 违背“低耦合”的设计示例
考虑如下一个示例:按钮控制点灯开关
#include <iostream>
#define ON true
#define OFF false
class Lamp
{
public:
void on() {
// ...
}
void off() {
// ...
}
};
clas