高内聚:
高内聚是另外一个评判软件设计质量的标准。内聚更为专业的说法叫做功能内聚,是对系统中元素职责的相关性和集中度的量度。如果元素有高度的相关职责,除了这些职责在没有其他的工作,那么该元素就有高内聚。
例如:
这就好像,如果我是一个项目经理,我的职责是监控和协调我的项目各个阶段的工作。当我的项目进入需求分析阶段,我会请求需求分析员来完成;当我的项目进入开发阶段,我会请求软件开发人员来完成;当我的项目需要测试的时候,我会请求测试人员。。。。。。如果我参与了开发,我就不是一个高内聚的元素,因为开发不是我的职责。
为什么要高内聚: 可读性,复用性,可维护性和易变更性。
低耦合:
耦合就是元素与元素之间的连接,感知和依赖量度。这里说的元素即是功能,对象,系统,子系统。模块。
例如:
电信的合约机只能使用电信SIM卡,不能使用移动的SIM卡,离开电信SIM卡就成砖头了,这样就是高耦合。再比如耳机,哪个手机都能用,这就属于低耦合。模块和模块之间依赖度低,不会因为一个模块没了,另一个模块用不了了。每个模块相对独立。
耦合带来的问题:
当元素B变更或者不存在时,都将影响元素A的正常运作,影响系统的可维护性和易变更性。同时元素A只能运行在元素B中,这也大大的降低了A元素的可复用性。正因为耦合的种种弊端,我们才需要在软件设计上追求低耦合
网友评论