“融化奶酪效应”的处理
2007-02-23 12:21:04 来源:WEB开发网核心提示: 整个面向服务概念和许多其它的设计指导都是围绕着如何为一个软件可能进行的改变做好准备,但是它们并不完整,“融化奶酪效应”的处理(8),让我们姑且称之为教条,松耦合并非一个答案,在某些情况下,改变给其周围环境和相关软件带来的扩散式的影响往往造成更加巨大的,在没有对改变进行预期的情况下,它没有任
整个面向服务概念和许多其它的设计指导都是围绕着如何为一个软件可能进行的改变做好准备,但是它们并不完整,让我们姑且称之为教条。松耦合并非一个答案,在没有对改变进行预期的情况下,它没有任何意义。
使用松紧耦合的讨论实际上就是关于支持变动的讨论。当改变很有可能发生时,相对较松的耦合方式就变得更重要一些;相反当发生变动的可能性较小的时候,松耦合方式的重要性也会相对降低。
松耦合意味着:
• 进行变动付出更小的代价
• 各部分的依赖关系是已知的,是可以被控制的
• 变动并非昂贵耗时的
• 双方(或多方)中的各个部分可以相互独立的进行改变
• 变动造成的影响是已知或可以预期的
松耦合是一种投资。了解并预估进行改动可能给系统带来的影响,并计算出这种变更会使组织者付出怎样的代价是非常重要的。它可以帮助你明确怎样的投资是可以接受的,而这个又可以反过来帮你确定设计的范畴和规模。变更须付代价由每次变更须付代价和变更频率决定。所以,对于经常需要变动的部分,考虑耦合方式就变得更加重要。在某些情况下,改变给其周围环境和相关软件带来的扩散式的影响往往造成更加巨大的,而且经常是不容易为人察觉的代价。
我们可以从以下几个不同方面考虑如何为变动做准备:
• 我可以修改软件以支持改变的功能吗?
• 我可以只修改软件的某些部分而不是对整体进行修改吗?这种局部性的修改可以细化到什么程度呢?
• 我可以应用修改后的版本吗?
• 我可以不用重新启动系统就应用修改后的版本吗?
• 我可以不用拆分系统就应用某些部分的改动吗?
更多精彩
赞助商链接