Atitit 深入理解耦合Coupling的法则同attilax总结。Atitit GRASP(General Responsibility Assignment Software Patterns),中文名称为“通用职责分配软件模式”

 

Atitit
GRASP(General
Responsibility Assignment Software Patterns),中文名称为“通用职责分配软件模式”

Atitit
深深理解耦合Coupling的原理和attilax总结

 

 

 

 

1. GRASP (职责分配原则)1

耦合是靠区区单或个别单以上之电路元件或电网络等的输入与输出之间有紧密配合与相互影响,并由此相互作用从旁边为其他一侧传输能量之情景。

1.1.
GRASP设计模式 1

耦合作为名词在通信工程、软件工程、机械工程等工程被都发出连锁名词术语。

1.2.
9个基本的OO设计基准要骨干的设计构件。这9只设计模式分别是:创建者(Creator)、信息专家(Information Expert)、低耦合(Low Coupling)、控制器(Controller)、高内聚(High Cohesion)、多态性(Polymorphism)、纯虚构(Pure Fabrication)、间接性(Indirection)、防止形成(Protected Variations)。 2

 

 

 

 

1. 1 首要分类 

 

2. ▪ 基本上集耦合 

1. GRASP (职责分配原则)

使读书设计模式,有些基础知识是咱须要先了解之,设计模式是有关类及对象的一样种植高效、灵活的运用办法,也就是说,必须先出类似和对象,才会发设计模式的用武之地,否则一切都是空谈,那么看似及对象是由那顶出来的吧?这时就用比23种植设计模式更要更经典的GRASP模式上了,嘿嘿,原来就才是那个!

GRASP(General
Responsibility Assignment Software Patterns),中文名称为“通用职责分配软件模式”,GRASP一共包括9种植模式,它们描述了目标设计以及任务分配的主干尺度。也就是说,如何把实际世界的业务职能抽象成靶子,如何控制一个体系发出多少对象,每个对象都席卷什么任务,GRASP模式于来了无限核心的点拨原则。初学者应该尽快控制、理解这些标准,因为马上是如何筹划一个面向对象系统的根底。好说,GRASP是读用设计模式的功底。

 

 

3. ▪ 能量耦合 

1.1. GRASP设计模式

说交设计模式,更为人所知的自是GoF(Gang of Four)的23种设计模式。与GoF的23种设计模式不同之是,GRASP设计模式描述的凡当OO设计中为彼此合作的近乎分红任务的尺码还是建议,而GoF的设计模式则是于重胜似之层系上讲述一个OO系统或者其有些系统的表现以及组织及之泛。

 

GRASP设计模式的全称是General Responsibility Assignment Software Patterns,即通用职责分配软件模式。它定义了

4. ▪ 数码耦合 

1.2. 9单核心的OO设计基准还是核心的计划性构件。这9独设计模式分别是:创建者(Creator)、信息专家(Information Expert)、低耦合(Low Coupling)、控制器(Controller)、高内聚(High Cohesion)、多态性(Polymorphism)、纯虚构(Pure Fabrication)、间接性(Indirection)、防止形成(Protected Variations)。

 GRASP,全称为General
Responsibility Assignment Software Pattern
,即通用职责分配软件模式,它由《UML和模式采用》(Applying
UML and Patterns
)一写作者Craig
Larman提出。与该以它叫设计模式,不如称之为设计原则,因为其是立在面向对象设计之角度,告诉我们怎样设计问题空间被之近乎及分配其的行事职责,以及强烈类里的相互关系等,而未像GoF模式一样是对准一定问题如提出的缓解方案。因此GRASP站在一个复胜似的角度来对面向对象软件的设计,它是GoF设计模式的底子。

      
GRASP是对象职责分配的主导规则,其核心思想是任务分配(Responsibility
Assignment),用职责设计目标(Designing
Objects with Responsibilities)。
她涵盖如下9只基本模式:

 

**     

  1. 消息专家模式 (Information
    Expert Pattern)**

     
(1) 问题:
受目标分配任务的通用标准是什么?

     
(2) 解决方案:
将任务分配受有实行一个职责所必需信息之近乎,即信息专家。

     
(3) 分析:
信息专家模式是面向对象设计之卓绝基本标准。通俗点来讲,就是一个类似才提到该干的事体,不欠干的政工不涉。在系规划时,需要将任务分配为有实现之任务所要信息之近乎。信专家模式对应于面向对象设计规范被的十足任务规范。

 

**     

  1. 创造者模式 (Creator
    Pattern)**

     
(1) 问题:
哪位该承担产生类似的实例?

     
(2) 解决方案:
假设符合下面的一个要基本上个条件,则只是拿开创类A实例之天职分配给类B:

· B包含A;

· B聚合A;

· B拥有初始化A的数据并以创造类A的实例时以数据传递给类A;

· B记录A的实例;

· B频繁使用A。

      此时,我们称类B是类A对象的缔造者。如果符合多只尺码,类B聚合或者隐含类A的标准化先。

     
(3) 分析:
创建对象是面向对象系统中极其广泛的动有,因此,确定一个分配创建对象的通用职责非常重大。如果任务分配合理,设计虽可知减低耦合,提高设计的清晰度、封装性和重用性。通常状态下,如果目标的创始过程不是充分复杂,则根据上述原则,由下对象的类来创建对象。但是若创建进程非常复杂,而且或许用重复使用对象实例或者用从表面注入一个对象实例,此时,可以委托一个专门的厂类来拉创建对象。主创者模式以及各种工厂模式(简单工厂模式、工厂方法模式与浮泛工厂模式)相呼应。

 

 

GRASP设计模式及OO设计标准浅谈-钟声的博客-搜狐博客!!!.htm

 

GRASP模式 – 刘伟技术博客 – 博客频道 – CSDN.NET.htm

 

作者:: 绰号:老哇的爪子claw of
Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王”Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red
cloak

简称:: Emir
Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir
Attilax Akbar bin
Mahmud bin  attila
bin Solomon bin adam
Al Rapanui 

埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊   

常用名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

 

 

职称:uke总部o2o负责人,全球网格化项目创始人,

uke宗教和知识融合事务部部长, uke宗教改革委员会副主席

,Uke部落首席大酋长,

uke制度和根本会议委员会委员长,uke保安部首席大队长,uke制度检查委员会顺应会长,

奶牛科技cto ,uke 首席cto

uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人。布维岛以及南乔治亚以及南桑威奇群岛大区连锁负责人 

 Uke软件条件协会理事长理事长 uke终身教育学校称校长

Uke
数据库与存储标准化协会顺应会长 uke出版社编辑总编

Uke医院方面的开山

 

转载请注明来源:attilax的专栏   http://www.cnblogs.com/attilax/

–Atiend

 

5. ▪ 记耦合 

1. ▪ 操纵耦合 

2. ▪ 表耦合 

3. ▪ 公耦合 

4. ▪ 情节耦合 

5. ▪ 匪直接耦合 

6. ▪ 其余类情况 

 

 

耦合是系统规划中尽紧要的定义有,也是规划着确的中心标准有。所谓耦合,指的是对准某元素与另外因素中的连年、感知和仰程度之胸怀。在一个OO系统中,所有的耦合形式而分为5类:

l  零耦合(nil coupling):两独八九不离十丝毫未指让对方。

l  导出耦合(export coupling):一个好像依赖让其它一个好像的国有接口。

l  授权耦合(overt coupling):一个类经允许,使用任何一个近乎的兑现细节。

l  自行耦合(covert coupling):一个类似未经同意,使用外一个类的实现细节。

l  暗中耦合(surreptitious coupling):一个像样经过某种方式了解了其余一个近似的实现细节。

 

 

零耦合当然是耦合度最低的。两只丝毫互不依赖的切近,意味着在保安与扩展系统不时,可以随便地失去丢或者修改中的一个好像设丝毫休会见影响至其它一个看似。但是,只下零耦合却无法缔造有一个出意义的OO系统,因为具有的近乎都是单身、不相干的,相互之间没有消息之传递,这样太多只能创造有一个类库。导出耦合具有一定小之耦合度,因为于导出耦合中,一个看似就依靠另一个像样的公有接口。在一个规划精良的系中,消息之传递只见面透过类似的公有接口进行,因而导出耦合可以很好地支持系统的可维护性与可扩展性。除此之外,授权耦合、自行耦合、以及默默耦合都是耦合程度比强之耦合形式。

发生这么平等漫长OO设计之阅历极:类和类似中应零耦合,或者只有导出耦合关系。也尽管,一个看似或同另一个像样毫无关系,要么就单纯下其它一个近似提供的公有接口。授权耦合、自行耦合、暗中耦合基本上不应该以系统中为用到。

。高耦合本身也并无是题材之四海,问题是同某些方面不安宁的元素中的过人耦合,这种高耦合会严重影响系将来的维护性和扩展性。而遵循具有的Java系统都能够安然地拿团结去Java库(java.lang,java.util等)进行耦合,因为Java库是安静的,与Java库的耦合不见面叫系统的灵活性、维护性、扩展性带来什么问题。

 

 

简单易行地说,软件工程遇目标期间的耦合度纵使对象之间的凭。指导使用和保护对象的要害问题是目标之间的系列依赖性。对象期间的耦合越强,维护资产更强。因此对象的计划性应使类和构件之间的耦合最小。

产生软硬件中的耦合,还有软件各模块之间的耦合。

耦合性凡程序结构中逐条模块之间交互关系的心气。它在各个模块之间的接口的复杂程度、调用模块的法门与哪消息通过接口。

耦合可以分成以下几栽,它们之间的耦合度由大交小排列如下:

(1)
内容耦合。当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时,这样的耦合被称呼内容耦合。内容耦合是参天水准的耦合,应该避免用的。

(2)
公共耦合。两只或少于只以上之模块并引用一个大局数据项,这种耦合被称为公共耦合。在富有大量官耦合的结构中,确定到底是孰模块于全局变量赋了一个特定的价值是十分困难的。

(3) 外部耦合
。一组模块都看同全局简单变量而休是一模一样全局数据结构,而且无是经过参数表传递该全局变量的信,则称之为外部耦合。

(4) 控制耦合
。一个模块通过接口向其它一个模块传递一个操纵信号,接受信号的模块根据信号值而进行适度的动作,这种耦合被叫做控制耦合。

(5) 标记耦合
。若一个模块A通过接口向少数单模块B和C传递一个官参数,那么称模块B和C之间有一个号耦合。

(6)
数据耦合。模块之间通过参数来传递数据,那么给叫做数据耦合。数据耦合是最低的一样种植耦合形式,系统受到一般都在这种类型的耦合,因为以做到部分生意义之功效,往往要用或多或少模块的输出数据作为其它一些模块的输入数据。

(7) 非直接耦合
。两独模块之间没有直接关乎,它们中的联络了是经主模块的主宰与调用来落实的。

总结:耦合是熏陶软件复杂程度和统筹质量之一个关键因素,在统筹及我们承诺使用以下原则:如果模块间要存在耦合,就尽可能采用数据耦合,少用控制耦合,限制公共耦合的限,尽量避免使用内容耦合。

 

 

1.1. 耦合强度,依赖让以下几只元素:\[2\]  

(1)一个模块对其他一个模块的调用;

(2)一个模块于外一个模块传递的数据量;

(3)一个模块施加到其它一个模块的主宰的略微;

(4)模块之间接口的复杂程度。

 

GRASP设计模式及OO设计标准浅谈-钟声的博客-搜狐博客!!!.htm

 

耦合_百度百科.htm

GRASP模式 –
刘伟技术博客 – 博客频道 – CSDN.NET.htm

 

作者:: 绰号:老哇的爪子claw of
Eagle 偶像破坏者Iconoclast image-smasher

捕鸟王”Bird Catcher 王中之王King of Kings 虔诚者Pious 宗教信仰捍卫者 Defender of the Faith. 卡拉卡拉红斗篷 Caracalla red
cloak

简称:: Emir
Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

全名::Emir
Attilax Akbar bin
Mahmud bin  attila
bin Solomon bin adam
Al Rapanui 

埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊   

常用名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

 

 

职称:uke总部o2o负责人,全球网格化项目创始人,

uke宗教与学识融为一体事务部部长, uke宗教改革委员会称主席

,Uke部落首席大酋长,

uke制度以及根本会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,

奶牛科技cto ,uke 首席cto

uke波利尼西亚区大区连锁负责人,克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke汤加王国区域负责人。布维岛同南乔治亚同南桑威奇群岛大区连锁负责人 

 Uke软件条件协会理事长理事长 uke终身教育学校符校长

Uke
数据库与存储标准化协会副会长 uke出版社编总编

Uke医院者的元老

 

转载请注明来源:attilax的专栏   http://www.cnblogs.com/attilax/

–Atiend