怎么选择设计模式

(本文摘自《设计模式-可服用面向对象软件的基础》,本文需要对照此书一起看 ) GOF设计模式中有20多个设计模式供你选择,要从中找出一个针对特定设计问题的模式

(本文摘自《设计模式-可服用面向对象软件的基础》,本文需要对照此书一起看 )
GOF设计模式中有20多个设计模式供你选择,要从中找出一个针对特定设计问题的模式可能还是很困难的,尤其是当面对一组新模式,你还不怎么熟悉它的时候。这里给出几个不同的方法,帮助你发现适合你手头问题的设计模式:

  • 考虑设计模式是怎样解决设计问题的。1.6节讨论了设计模式怎样帮助你找到合适的对象、决定对象的粒度、指定对象接口以及设计模式解决设计问题的几个其他方法。参考这些讨论会有助于你找到合适的模式。
  • 浏览模式的意图部分。1.4节列出了目录中所有模式的意图部分。通读每个模式的意图,找出和你的问题相关的一个或多个模式。你可以使用表 1-1所显示的分类方法缩小你的搜查范围。
  • 研究模式怎样互相关联。 图1-1 以图形方式显示了设计模式之间的关系。研究这些关系能指导你获得合适的模式或模式组。
  • 研究目的相似的模式。 模式分类描述部分共有三章,一章介绍创建型模式,一章介绍结构型模式,一章介绍行为型模式。每一章都以对模式介绍性的评价开始,以一个小节的比较和对照结束。这些小节使你得以洞察具有相似目的的模式之间的共同点和不同点。
  • 检查重新设计的原因。看一看从“设计应支持变化”小节开始讨论的引起重新设计的各种原因,再看看你的问题是否与它们有关,然后再找出哪些模式可以帮助你避免这些会导致重新设计的因素。
  • 考虑你的设计中哪些是可变的。这个方法与关注引起重新设计的原因刚好相反。它不是考虑什么会迫使你的设计改变,而是考虑你想要什么变化却又不会引起重新设计。最主要的一点是封装变化的概念,这是许多设计模式的主题。表1-2列出了设计模式允许你独立变化的方面,你可以改变它们而又不会导致重新设计。
    这里写图片描述