结构化设计的两个基本原则
高内聚,低耦合
高内聚
在面向对象的设计中,目标就是设计出高内聚、低耦合的程序。
聚合(cohesion):聚合是一个模块内部各成分之间相关联程度的度量
聚合的理解
聚合是对一个模块内部的度量,因为是对一个模块内部的度量,所以聚合也成为内聚,这里的模块是广义上的模块,它代表的可能是一个子系统,或者是功能模块,或者是功能模块中的某一个类。从不同的层次看,聚合的程度也有所不同,模块的成分又包括模块的行为和状态,要做到高内聚,那么模块内部的行为必须要与模块的内部状态紧密关联,比如说,一个模块仅完成一个独立的功能,那么模块内部不存在与该功能无关的操作或状态。
聚合举例说明
一家公司,员工在A上班,在B住宿,把公司看成一个模块,那么员工上班从B到A需要一定的时间,如果堵车各种原因,还可能会迟到,影响工作效率,如果员工在A旁边住宿,就大大提高了效率,所以在这个公司模块中,上班和住宿就是模块内部的成分,在A上班在B住宿就使得聚合程度降低,无法提高效率,要做到高内聚,就要是模块内部成分紧密相连,所以在A上班在A 旁边住宿就实现了高内聚。
低耦合:耦合是模块之间相关联程度的度量。
耦合
耦合是模块之间相关联程度的度量,相对于聚合的内向性,耦合关注的是某一模块和其他模块之间的关联性。
耦合举例说明
一家公司,员工在A上班,在B住宿,把A,B分别看成是两个模块,那么如果在员工在宿舍里耽误了时间,那么就会迟到,这样A就会依赖B,再举一个例子,小霸王插卡游戏机,有卡和游戏机两部分组成,那么如果卡坏了,就可以换个卡再用之前的游戏机继续玩游戏,如果游戏机坏了,就可以继续用卡玩游戏,只需要换个游戏机就行了,所以在编程中,A依赖B这种就叫做耦合,游戏机例子就是低耦合的代表,低耦合就是要做到模快之前依赖减少,互不影响。