敏捷开发(五):Grasp 模式

Grasp 模式包括 创建者(Creator),信息专家(Information Expert,高内聚(High Cohesion),低耦合(Low Coupling)、控制器(Controller)、多态(Polymorphism)、间接性(Indirection)、纯虚构(Pure Fabrication)、防止变异(Protected Variation)。

 

只简单谈几种,剩下的有空补上,形成一个比较系统的资料。

多态 当不同对象的服务类似或者相关时,可以为这些服务指定相同的名字

处理基于类型的选择?如何创建可插拔的软件结构?

解决:不要测试对象类型,或者通过条件来执行不同对象的选择。

功能:多态能够完成“如何组织以处理类似的变化”。基于多态的设计能被简单的扩展以减小变化的影响。

 

对于在OO语法,意味着多态要使用接口和抽象类。二者的使用区分(建议): 想实现多态,又不想受限于特定的类型结构,可考虑用接口。如果,已使用了抽象类来实现多态,就只能沿用抽象类(多在于扩展时)。

Gof中基于多态的设计模式:适配器,命令,组合,代理,状态,策略模式。(需要认真体会一下)

 

防止变异(Protected Variation

问题:如何设计对象、子系统和系统,使其内部变化或不稳定不会对其他产生不良影响?

解决:识别预计变化之外,在这些变化之外创建稳定接口。

 

专家模式

      问题: 谁来创建对象?

      解决:赋于知道对象最多的(对象)来创建。

 

专家的权衡(选择):

1.       当有多个局部专家时:应将职责赋予具有主要信息的专家(它具有更强的支配力);

2.       当几个局部专家信息差不多时,应考虑内聚与耦合性;

3.       当上面两者都差不多时,就考虑软件在未来可能的演化以及信息专家、耦合、内聚来做一个权衡。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值