GoF的设计模式与模式

        GoF在编写《设计模式》一书时,模式的研究才刚刚开始,PLoP也只举行了两届,各种模式和模式语言还处在评审阶段,对模式的形成和书写方式还处在探索阶段,因此,GoF的设计模式与现在一般意义上的模式还是有很大区别的。了解这些区别,有助于更好地理解设计模式的内涵。本节着重指出GoF设计模式和现在的模式理论上的区别和对理解的影响。
        GoF设计模式与模式理论的区别是前者更偏重于解决方案。认为设计模式就是解决方案并不是一点道理没有,GoF在《设计模式》一书中承认,与亚历山大的模式相比,他们的设计模式更偏重于解决方案(实现)的描述,而后者更偏重于问题的描述。也正是因为对方案的描述所占的比重远大于对问题的描述,所以在使用设计模式时,难度经常出现在无法判断是否应该使用设计模式,或者使用哪一种设计模式上,而不是在选择模式后的实现上。
        因此,在理解设计模式时,重点应放在每个模式解决问题的场合和使用模式需要考虑的因素上。在GoF的设计模式中,动机描述通常是一个具体的实例,需要读者从实例理解动机中隐含的上下文和Forces。当然,给设计模式总结出抽象的上下文和Forces是非常困难的,解决这个问题的另一个方法是给更多的应用实例,使读者可以根据自己的业务背景从相似的实例中得到启发,从而理解其中的含义。
        这里需要强调的是,设计模式是模式的一种,模式是一种思考问题的方式和思考结果的表现形式,由于历史的原因,GoF的设计模式与模式理论有一定的区别,但这并不是说设计模式与模式理论有矛盾,而是在理解上,需要按照模式的思想理解设计模式中没有显示表示出来的内涵。

posted @   寻找无名的特质  阅读(1954)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示