"低耦合,高聚合"是比方法更一般的东西,是方法背后的通用原则之一。结构化程序设计重视它,OO程序设计也重视它,设计模式依然重视它。而聚合和耦合是同一事物的不同方面,它们的共同基础就是依赖性。《易经》里说,"一阴一阳谓之道",对软件设计而言,这"一阴一阳"恐怕就是"耦合性"和"聚合性"了。
依赖(dependency)的概念:两个元素之间的一种关系,其中一个元素变化,导致另一个元素变化。
依赖的同义词:耦合(coupling),共生(connascence)。
依赖的危害:一个元素变化,引起另一个元素不得不变化。
我最喜欢的对"耦合性"的讲解,出现在《UML 面向对象设计基础》这本书里--很遗憾,这本书不算很火。此书采用了"共生性"的叫法,并将共生性分为静态共生性、动态共生性、差异共生性三大类。
此书对"耦合性"的剖析,足以让那些一开设计会,10句话里9句都带"耦合"的××师羞愧--词汇量与思维的关系我就不说了吧--因为此书将"耦合性"的论述真正落到了实处。例如:
类型共生性(connascence of type)
int i; i=3; // ok
char i; i=3; //error
Class和Interface自然也会引起"类型共生性"..
若有兴趣,可参考http://lcspace.nease.net/c-code/connascence.xml。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=523546