低耦合&&高内聚

来源:互联网 发布:距离矢量路由选择算法 编辑:程序博客网 时间:2024/05/14 00:57

内聚:模块内、单一原则性,一个模块只负责一个任务。一个类中变量与方法连接的强度。
耦合:模块间、模块间联系越紧密,耦合性越强,独立性越差。类之间相互调用的关系。类之间相互依赖的尺度。
eg:cpu与主板,特殊cpu依赖特殊主板,那么这两个模块是耦合的,CPU不依赖唯一主板,那么它们就是低耦合的。
耦合性和内聚性是模块独立性的两个定性标准。
面向对象设计标准,主要指类的高内聚、低耦合
这里写图片描述
低耦合:模块与模块之间,尽可能使其独立存在,每个模块尽可能独立完成子功能,模块间尽量减少接口,如果两个模块间关系比较复杂,首先考虑进一步模块划分,有利于修改和组合。
耦合度的高低取决于模块间接口的复杂度,调用的方式以及传递的信**息。
降低耦合度方法:**
1.少使用类的继承,多用接口隐藏实现的细节。接口的好处:多态、隐藏实现细节。
2.模块功能要单一,这样被其他模块调用的机会少。
3.一个定义只在一个地方出现。
4.少使用全局变量。
5.声明类属性和方法少用public,多用private。
6.避免直接用sql语句操作数据库。
模块间的依赖尽量通过接口,对象组合优于继承。
高内聚:类和类之间的关系简单、明了。每一个类完成特定独立功能。一个类尽量只形容一类事物,如果有两个类有共同的属性和方法,尽量提出来做成父类,方法尽量单一,在类中把方法和属性紧密联系在一起,eg:写一个功能时尽量多分成好几个方法 在用一个方法把这些方法综合起来,对外就提供这一个方法就好了.
高内聚和低耦合是相互矛盾的,分解力度越粗的系统耦合性越低,分解力度越细的系统内聚性越高,过度低耦合的软件系统模块内部不可能高内聚,eg:一个类将所有的函数都写了,完全不用依赖其他类,耦合度最低,但是又会是的内聚性很低,整个设计就变称“低耦合低内聚了”。过度内聚的软件模块之间必然是高度依赖的即高耦合。eg:一个类只写一个函数,内聚性是最高的,但是这样会导致类的数量增多,其他类之间耦合增多,于是整个设计就变成“高内聚低耦合了”

原创粉丝点击