高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。
内聚,也叫功能内聚,是对软件系统中元素职责相关性和集中度的度量。高内聚的意思是给类尽量分配功能性内聚的职责,属于该类做的事由该类完成,不属于该类做的事由其他的类完成。即功能性紧密相关的职责应该放在一个类里,并共同完成有限的功能。
耦合,是对某元素与其它元素之间的连接、感知和依赖的量度。这里所说的元素,即可以是功能、对象(类),也可以指系统、子系统、模块。低耦合就是某元素不要过分依赖于其它元素,也是尽可能地减少类之间的连接。
低耦合降低了因一个类的变化而影响其他类的范围,使类更容易理解。比如,如果A类调用了B类的方法,而B类又是C类的属性,而C也是A类的属性,当其中的A类发生变化时,B、C类都要修改。在程序设计中,耦合不是不可避免的,所以完全的去耦合根本就不可能。要使程序尽量低耦合,我们在程序设计中利用功能划分,让每个类尽可能的独立完成某个特定的子功能,同时尽量使用接口而不是继承,因为继承就是一种耦合。