zoukankan      html  css  js  c++  java
  • 如何选择和运用设计模式

                                        如何选择和运用设计模式
          既然能够从众多设计模式中选择,那么如何识别那种设计模式适合自己要解决的问题呢?要弄清楚使用那种设计模式以及如何将解决方案模版应用于具体问题中,重要的是理解一下指导方针。
          1、在不了解模式的情况下不能运用它们。首要的是扩大自己的知识面并采用从抽象到具体的方法来学习模式和原则。实现某种模式的方法有很多。看到的模式的不同实现越多,就越能理解模式的目的以及单个模式能够有不同实现。
          2、是否有必要引入设计模式的复杂性?通常,开发者在学习设计模式时尝试使用一种模式来解决所有问题。总是需要衡量实现某种模式所需的时间与该模式能够带来的收益。谨记KISS原则:保持简单浅显。
         3、将问题泛化,以更抽象的方式识别正在处理的问题。了解每个模式和原则是如何编写的,并了解自己要解决的问题是否符合特定模式或原则视试图解决的问题。记住,设计模式是高层次的解决方案,试着把问题抽象,而且不要过于关注具体问题的细节。
         4、了解具有类似性质的模式以及同组中的其他模式。以前已经使用过某个模式并不意味着在解决问题时它总是正确的模式选择。
         5、封装变化的部分。了解应用程序中什么可能发生变化。如果知道某个特殊的报价折扣算法将随时间发生变化,那么寻找一种模式来帮助你在不影响应用程序其余部分的情况下改变该算法。
         6、在选择好设计模式之后,确保在命名解决方案中的参与者时使用该模式的语言及领域语言。例如,如何正在使用策略模式为不同的快递公司提供解决方案,那么相应地为它们命名,如FedExShippingCostStrategy.通过结合使用模式的公共词汇表和领域语言,会让代码更具可读性,而且更能够让其他具备模式知识的开发者理解。
          就设计模式而言,除了学习之外没有其他替代方法。对每种模式了解得越多,在运用他们时就会准备得更好。当遇到一个问题正在寻找解决方案时,扫描一下每种模式的目的,唤起自己的记忆。

  • 相关阅读:
    vs2013运行qt.exe文件提示错误“找不到Qt5Cored.dll”
    基于stm32f1的lora开发基础通信实验
    vs出现找不到dll,重新安装程序可能会解决此问题
    C&C++&opencv文件操作
    出现无法解析的符号xxx(vs2013)
    opencv目标跟踪检测(C)
    vs运行出错:error MSB8020或error LNK1104: 无法打开文件“opencv_calib3d248d.lib/opencv_contribxxxd.lib”
    vs串口读写dll封装C++#(免费源码分享)
    stm32定时器操作配置()
    pwm控制ili9341背光屏幕亮度(stm32f4)
  • 原文地址:https://www.cnblogs.com/lonelyofsoul/p/designpatterns_employ.html
Copyright © 2011-2022 走看看