成功模式(pattern)作家的七个习惯(4)(by GOF)

习惯四:保持模式独一无二和优点突出
(Keeping Patterns Distinct and Complementary)

当你开发多个模式时有一个趋向需要避免。
当你写一个模式时,可能趋向于在细节和
口径(scope)同时增长。在这时很容易忘记
其它模式。模式之间的区别结果变得模糊了,
使别人无法分组(collectively)理解模式。
它们开始在口径和目的上互相重叠。这可能
对作者来说非常清楚,而对新手来说不那么
清楚。他们将不知道什么时候去使用一个模
式而不是另一个,因为它们之间的区别不那么
明显。

所以确保你的模式是正交的(orthogonal)并且
它们合力(synergistically)工作。持续问你
自己:“模式X和模式Y的区别是什么?”如果
解决相同的或相似的问题,你可以把它们合并。
如果两个模式使用相似的类层次(hierarchies),
则不用担心。在OO编程中有这么多方法使用
相对少的继承机制。通常相同的类使用将会
导致表示广泛变化的明显的不同对象结构。
让模式的意图作为它们不同点,而不是实现它们
的类结构的指南。

一个测试你的模式怎样正交和合作的好的方法
是保持分离的文档来比较(compare)和对比
(contrast)你的模式。在<<设计模式>>中
我们提供了多个为了这个目的的部分。试图
在写下来的形式下解释模式关系的简单行为
给我们对我们的模式的新的视角。不止一次
它让我们重新思考它们的一些部分。

我的唯一遗憾是我们在游戏中没有早一点重视
关系。我建议你尽早开始写下这个附件材料。
这可能看上去是做傻事,特别当你有很多模式
需要比较。不过当你只有两个模式时,重叠
得可能性出现了。初期花时间比较和对比
泥的模式将帮助你保持你的模式独一无二
而且优点突出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值