什么是耦合
我们总是听到说这有耦合,那要解耦。耦合看起来很高大上的名词,实际上耦合代表的就是各种元素之间的依赖性和相关性。
耦合的种类
- 数据之间的耦合;例如:
class Person{ string name; int age; }
name和age属于同一个类里面,他们就产生了耦合
- 函数之间的耦合;
同理,一个类中的两个函数也有相关性。如果两个函数之间有调用,即使不在同一个类中,也有耦合。例如:DriverCar()函数就和FillFuel函数产生了耦合。
public DriverCar(){ if(isFuelEmpty){ station.FillFuel(this.car); } Drive(); }
- 数据和函数之间的耦合;
不是所有的耦合都是不好的
我们平时过于强调解耦,所以很多人误以为耦合是个贬义词。这里有必要澄清一下:其实大多数的耦合是业务逻辑的要求,是为了满足正当的需求所产生的。对耦合要一分为二地看待:有好耦合,也有坏耦合。
好耦合:对应业务需求或者系统限制,我们有时还要强化它:将隐式的变成显式的,将松散的变成内聚的。
坏耦合:预料之外的耦合,尽量剔除。