小言_互联网的博客

C++(设计模式):04---如何选择设计模式、如何使用设计模式

341人阅读  评论(0)

一、如何选择设计模式

  • 考虑设计模式是怎样解决设计问题的:前面一篇文章(https://blog.csdn.net/qq_41453285/article/details/103941876)讨论了设计模式怎样帮助你找到合适的对 象、决定对象的粒度、指定对象接口以及设计模式解决设计问题的几个其他方法。参考这些讨论会有助于你找到合适的模式。
  • 浏览模式的意图部分:前面的文章(https://blog.csdn.net/qq_41453285/article/details/103192469)列出了目录中所有模式的意图 (intent)部分。通读每个模式的意图,找出和你的问题相关的一个或多个模式。你可以使用(https://blog.csdn.net/qq_41453285/article/details/103208282文章中)所显示的分类方法缩小你的搜查范围
  • 研究模式怎样互相关联:前面的一篇文章(https://blog.csdn.net/qq_41453285/article/details/103208282)以图形方式显示了设计模式之间的关系。研究这些关系 能指导你获得合适的模式或模式组
  • 研究目的相似的模式
  • 检查重新设计的原因:前一篇文章(https://blog.csdn.net/qq_41453285/article/details/103941876)的“设计应支持变化”小节开始讨论的引起重新设计的各种原因,再看看你的问题是否与它们有关,然后再找出哪些模式可以帮助你避免这些会导致重新设计的因素
  • 考虑你的设计中哪些是可变的:这个方法与关注引起重新设计的原因刚好相反。它不是 考虑什么会迫使你的设计改变,而是考虑你想要什么变化却又不会引起重新设计。最主 要的一点是封装变化的概念,这是许多设计模式的主题。下表列出了设计模式允许你独立变化的方面,你可以改变它们而又不会导致重新设计

二、如何使用设计模式

  • 一旦你选择了一个设计模式,你怎么使用它呢?这里给出一个有效应用设计模式的循序 渐进的方法。
    • 1.大致浏览一遍模式:特别注意其适用性部分和效果部分,确定它适合你的问题
    • 2.回头研究结构部分、参与者部分和协作部分:确保你理解这个模式的类和对象以及它 们是怎样关联的
    • 3.看代码示例部分,看看这个模式代码形式的具体例子:研究代码将有助于你实现模式。
    • 4.选择模式参与者的名字,使它们在应用上下文中有意义:设计模式参与者的名字通常过于抽象而不会直接出现在应用中。然而,将参与者的名字和应用中出现的名字合并起来是 很有用的。这会帮助你在实现中更显式的体现出模式来。例如,如果你在文本组合算法中使 用了Strategy模式,那么你可能有名为SimpleLayoutStrategy或TeXLayoutStrategy这样的类
    • 5.定义类:声明它们的接口,建立它们的继承关系,定义代表数据和对象引用的实例变量。识别模式会影响到的你的应用中存在的类,做出相应的修改。
    • 6.定义模式中专用于应用的操作名称:这里再一次体现出,名字一般依赖于应用。使用 与每一个操作相关联的责任和协作作为指导。还有,你的名字约定要一致。例如,可以使用 “Create”前缀统一标记Factory方法
    • 7.实现执行模式中责任和协作的操作:实现部分提供线索指导你进行实现。代码示例部 分的例子也能提供帮助

转载:https://blog.csdn.net/qq_41453285/article/details/103941888
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场