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

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

 

 

 

admin

网站地图xml地图