耦合度表示类与类之间或子程序与子程序之前的关系的紧密程度。
耦合设计目标是:尽可能设计小的、直接的、清晰的类或子程序(模块),使他们之间关系尽量灵活,这种就被称为“松散耦合"
耦合标准
以下是衡量模块之间耦合度时可采用的标准:
规模:是指模块之间的连接数,对耦合度来讲,小就是美,尽量少的参与与少的方法与其它模块连接;
可见性:是指连接之间的显著程度,如参数应该是明确的,而不使用全局变量来做模块间传递;
灵活性:是指模块之间的连接容易改动;
一个模块越容易被其它模块调用,它们之间的耦合关系就越松散。因此在创建系统架构时,请按照“尽可能缩减相互连接”的准则来分解程序。
耦合种类
- 简单数据参数耦合
- 简单对象耦合
- 对象参数耦合
- 语义上的耦合 最难缠的耦合关系
关于耦合的价值总结
松散耦合的价值在于提供了一层附加抽象,一旦你写好了它,你就可以想当然地去用它。这样就降低了系统的复杂度,使得你可以在同一时间只关注一件事。
如果一个模块的使用要求你同时关注好几件事--如:其内部工作细节、对全局数据的修改、不确定的功能点等--那么就失去了抽象能力,模块所具有的管理复杂度的能力也就被削弱或完全丧失了。
类和子程序是用于降低复杂度的首先和最重要的智力工具。如果它们没帮助你简化工作,那么它们就是失职的。