模式作用域:初级读本和最佳实践
2010-10-22 17:18:49 来源:WEB开发网核心提示: 通过让每个可能的元素、属性和类型都成为全局的,您创建了这样一种场景,模式作用域:初级读本和最佳实践(9),即无论是在内部还是在模式之间都最大化了重用 — 尽管是通过强迫名称空间为暴露的,通过完全暴露您的结构,如果元素替代对于您的设计很重要,或者您需要让元素对其他模式是透明的,您让模式
通过让每个可能的元素、属性和类型都成为全局的,您创建了这样一种场景,即无论是在内部还是在模式之间都最大化了重用 — 尽管是通过强迫名称空间为暴露的。通过完全暴露您的结构,您让模式高度耦合却敏捷。由于元素是相互依赖的,所以很快就会应用大规模的更改。
最佳实践:模式管理和改进
设计模式时,您通常会在暴露可重用组件、隐藏名称空间和限制名称空间暴露以及降低耦合(或者叫做多个全局元素/类型之间的相互依赖)之间取得平衡。图 1 总结了四种模式范式各自的重用潜能,指出了它们耦合和暴露方面的相对等级:
图 1. 暴露和与不同范式的耦合
查看原图(大图)
为重用模式组件提供高潜能可以缩短未来的开发时间和让大规模更改变得容易。但是,它也会带来这样的情况,即多个元素和类型不必要地耦合在一起。当模式变得高度耦合时,元素和类型就变得相互依赖,使得难以管理未来的更改和添加。耦合的猖獗会阻止模式的改进,因为其他系统依赖于您的接口保持一致。对于暴露什么和暴露多少,一定要谨慎。一旦做出选择,就难以改变。
不过,还是有一些方法可以确保未来的成功。首先是适当的作用域设计:
如果模式重用不是特别重要,而最小化代码大小却很必要,那么请使用 Russian doll 风格,因为它很紧凑,可以用来最大化名称空间隐藏。
如果元素替代对于您的设计很重要,或者您需要让元素对其他模式是透明的,那么请使用 Salami slice 风格或 Garden of Eden。
更多精彩
赞助商链接