编程心法 之 内聚度和耦合度是什么

内聚度 Cohesion
耦合度 Coupling

"Coupling" describes the relationships between modules, and "cohesion" describes the relationships within them.

  • 耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量
  • 内聚度(Cohesion),一个模块内部各成分彼此结合的紧密程度

参考

参考



想要看到更多玮哥的学习笔记、考试复习资料、面试准备资料?想要看到IBM工作时期的技术积累和国外初创公司的经验总结?

敬请关注:

玮哥的博客 —— CSDN的传送门

玮哥的博客 —— 简书的传送门

玮哥的博客 —— 博客园的传送门

原文地址:https://www.cnblogs.com/vigorz/p/10503963.html

时间: 2024-10-19 12:01:18

编程心法 之 内聚度和耦合度是什么的相关文章

Note3 :《集体智慧编程》用户相似度计算

欧几里德距离评价: 以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考察他们彼此之间的距离远近.计算出每一轴向上的差值,求平方之后再相加,最后对总和取平方根. # -*- coding: UTF-8 -*- #一个涉及影评者及其对几部影片评分情况的字典 critics={'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5, 'Just My Luck': 3.0, 'Superman Returns'

编程心法 之 怎么选择合适的IDE

一般情况下,使用IDE进行开发可以极大的提高开发效率 最佳选择 如果语言是GNU开源的则Eclipse,因为Eclipse就是开源的 例如C和C++这样的底层语言并且经典的语言,基于GNU的语言,推荐使用开源IDE Eclipse. 如果语言是某几家巨头共同开发,则使用巨头自己的IDE 例如Java这样普遍的经典的语言,推荐使用主要维护方的IDE,比如说Oracle的NetBeans.IBM的Eclipse以及新兴的IntelliJ(背后有google 支持的OpenJDK) 如果语言很新,则使

编程心法 之 敏捷开发(新架构)Agile Team Organization Squads, Chapters, Tribes and Guilds

Agile Team 参考 一般情况下,一个小组有以下功能分布: Squads 每个主要的功能的开发属于一个Squad,比如说QQ这个应用,可以分为QQ空间小组.QQ会员小组等等, 每一个Squad有Leader, 前端后端QA和发布,也就是说有完整的产品路线. 用一个大约5到7人的小组,使每个人都有责任感并且易于管理,并且每次的meeting都很有效率. Chapter 所有的QA一个Chapter,或是所有的前端一个chapter,这样的话就可以让QAreport给QA leader,dev

编程心法 之 Scrum - Agile 敏捷开发

Scrum是一种敏捷开发的方法 先定一个能达到的小目标 Scrum 团队 包括产品负责人.开发团队和Scrum Master Product Owner 产品负责人:管理代办事项和优先级的唯一负责人. 相关术语 Sprint 敏捷开发的周期,一般情况下需要2-6周时间,最终应该完成一个可演示给客户或者是可发布的产品 Epic 可以认为就是一个大的Stroy, 还没有拆解, 是对大Story的一个描述性标签 提问:Epic和User Story之间的区别是什么? 回答:准确的说,Epic是比用户故

初学者的JavaOOAD

软件工程三要素 方法:完成软件开发的各项任务的技术方法,为软件开发提供 “如何做” 的技术 工具:为运用方法而提供的自动的或半自动的软件工程的支撑环境 过程:为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤, 如何将软件工程方法与软件工具相结合,合理.及时地进行软件开发 Unified Modeling Language UML语言  一般我们用UML中的类图 类图关系如下: 实现关系是指接口及其实现类之间的关系 泛化关系(Generalization)是指对象与

OOAD之面向对象设计原则

学习这个设计模式 真的觉得很抽象,只有自己多多的领会! 在很多时候,很多的知识都会觉得讲起来是很矛盾的. 本章目标 1 掌握内聚度和耦合度的概念 2 掌握面向对象设计原则 (一)如何衡量软件设计的质量 内聚度:表示一个应用程序的单个单元所负责的任务数量和多样性.内聚与单个类或者单个方法单元相关.(在我自己的理解就是:在一个类中完成自己所有的任务,这些任务都在自己的类中.) 耦合度:耦合度表示类之间关系的紧密程度.耦合度决定了变更一个应用程序的容易程度.在紧密耦合的类结构中,更改一个类会导致其它的

拥抱模块化的JavaScript

我们再一次被计算机的名词,概念笼罩.backbone.emberjs.spinejs.batmanjs 等MVC框架侵袭而来.CommonJS.AMD.NodeJS.RequireJS.SeaJS.curljs等模块化的JavaScript扑面而来.模块化JavaScript的概念尤为强烈,似乎有赶超07年Ajax风潮之趋势.一.写函数(过程式) 2005年以前,JavaScript没人重视,只作为表单验证等少量应用.那时一个网页上写不了几行JS代码,1000行算很复杂了.这时组织代码的方式是过

JS的模块化编程

今天学了一下JS的模块化编程,感觉JavaScript真的是博大精深,CommonJS,requireJS,NodeJS,Seajs,在此记录一下经验.JavaScript设计之初并不是一种模块化编程语言,不支'类'和'模块'的概念,但ES6中却将正式支持"类"和"模块".有了模块,我们可以更方便地使用别人的代码,想要什么功能,就加载什么模块. 不过这样做的前提是大家必须以同样的方式编写模块,考虑到Javascript模块现在还没有官方规范,因此各种规范应运而生.

浅谈面向对象开发原则:高内聚,低耦合

软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准.划分摸块的一个准则就是高内聚低耦合. 这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低. 每一个类完成特定的独立的功能,这个就是高内聚.耦合就是类之间的互相调用关系,如果耦合很强,互相牵扯调用很多,那么会牵一发而动全身,不利于维护和扩展. 类之间的设置应该要低耦合,但是每个类应该要高内聚.耦合是类之间相互依赖的尺度.如果每个对象都有引用其它所有的对象,那么就有高耦合,这是不合乎要求的