高内聚
高内聚提供了更好的可维护性和可复用性
1.确定模块要完成的功能点
2.除了完成本职功能外,不提供其他功能
3.要满足可读性、可扩展性、可复用、可维护性要求
4.向外提供服务时最好是面向接口编程
举例:系统中存在A,B两个模块进行交互,如果修改了A模块,不影响B模块的工作,那么认为A模块有足够的内聚
低耦合
低耦合是用来度量模块与模块之间的依赖关系
1.低耦合要求模块之间的依赖、感知、连接尽量低
2.低耦合的设计要求能适应变化
3.模块间的低耦合体现在不同模块的内部的高内聚要求,模块功能尽量独立
4.模块间的依赖尽量通过接口,对象组合优于继承
举例:电器与插座之间是低耦合关系,就算更换了不同的插座,电器依然可以正常工作