理解高内聚低耦合

低耦合:

耦合就是元素与元素之间的链接,感知和依赖量度。这里说的元素便是功能,对象,系统,子系统。模块。数据库

例如:如今有方法A和方法B工具

咱们在A元素去调用B元素,当B元素有问题或者不存在的时候,A元素就不能正常的工做,那么就说元素A和元素B耦合开发工具

耦合带来的问题:

当元素B变动或者不存在时,都将影响元素A的正常运做,影响系统的可维护性和易变动性。同时元素A只能运行在元素B中,这也大大的下降了A元素的可复用性。正由于耦合的种种弊端,咱们才须要在软件设计上追求低耦合测试

低耦合如何作:

元素A不能过分依赖元素B设计

合理的职责划分:让系统中的对象各司其职,不只是提升内聚的要求,同时也能够有效地下降耦合对象

使用接口而不是继承:咱们不难发现。继承就是一种耦合,假如子类A继承了父类B,不管是直接继承或者间接继承,一但父类B不存在或者发生任何变动,都将致使子类A不得不修改或者重写。假如父类B的子类数十上百的,这就是灾难性的变动。继承

高内聚:

高内聚是另一个评判软件设计质量的标准。内聚更为专业的说法叫作功能内聚,是对系统中元素职责的相关性和集中度的量度。若是元素有高度的相关职责,除了这些职责在没有其余的工做,那么该元素就有高内聚。接口

例如:开发

这就好像,若是我是一个项目经理,个人职责是监控和协调个人项目各个阶段的工做。当个人项目进入需求分析阶段,我会请求需求分析员来完成;当个人项目进入开发阶段,我会请求软件开发人员来完成;当个人项目须要测试的时候,我会请求测试人员。。。。。。若是我参与了开发,我就不是一个高内聚的元素,由于开发不是个人职责。文档

为何要高内聚:

可读性

复用性

可维护性和易变动性

简单的理解高内聚低耦合:

耦合和内聚的的评判标准是强度,耦合越弱越好,内聚越强越好

耦合指模块与模块之间的关系,最弱的耦合就是经过一个主控模快来协调n哥模块进行运做。例如:。仍是举一个我举过的例子:客户要求在界面上增长一个字段,你的项目要修改几个地方呢?若是你只要修改项目文档,那么你的开发构架就是最低强度的耦合,而这种设计 成熟的开发团队都已经作到了,他们使用开发工具经过项目模型驱动数据库和各层次的代码,而不是直接修改那些代码;

内聚指的是模块内部的功能,最强的就是功能不能拆分,也就是原子化。

 

在简单的说:

 高内聚、低耦合讲的是程序单位协做的问题,  你能够这样理解,一个企业的管理,  最理想的状况就是各个部门各司其职,井井有理,互不干涉,  可是须要沟通交流的时候呢,  各个部门均可以找到接口人专门负责部门沟通以及对外沟通。 在软件里呢, 就是说各个模块要智能明确, 一个功能尽可能由一个模块实现,  一样,一个模块最好只实行一个功能。这个是所谓的“内聚”;  模块与模块之间、系统与系统之间的交互,是不可避免的, 可是咱们要尽可能减小因为交互引发的单个模块没法独立使用或者没法移植的状况发生,  尽量多的单独提供接口用于对外操做, 这个就是所谓的“低耦合”。 可是实际的设计开发过程当中,总会发生这样那样的问题与状况, 真正作到高内聚、低耦合是很难的,不少时候未必必定要这样, 更多的时候“最适合”的才是最好的, 不过,理解思想,审时度势地使用, 融会贯通,灵活运用,才是设计的王道。

 

 

/*

author:咔咔

time:2018.9.13

content:低耦合高内聚

*/

相关文章
相关标签/搜索