设计模式是什么?

在软件工程中,设计模式(Design Pattern)是对软件设计中常见问题的典型解决方案。它们就像能根据需求进行调整的预制蓝图,可用于解决代码中反复出现的设计问题。

设计模式与方法或库的使用方式不同,你很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码,而是解决特定问题的一般性概念。你可以根据模式来实现符合自己程序实际所需的解决方案。

人们常常会混淆模式和算法,因为两者在概念上都是已知特定问题的典型解决方案。但算法总是明确定义达成特定目标所需的一系列步骤,而模式则是对解决方案的更高层次描述,同一模式在两个不同程序中的实现代码可能会不一样。

算法更像是菜谱,提供达成目标的步骤。而模式更像是蓝图,你可以看到最终的结果和模式的功能,但需要自己确定实现步骤。

设计模式的七大原则

  1. 单一职责原则(SRP):一个接口或类只有一个原因引起变化
  2. 里氏替换原则(LSP):所有引用基类的地方必须能透明地使用其子类对象
  3. 依赖倒置原则(DIP):高层模块不依赖于底层模块,都依赖于抽象;抽象接口不依赖于具体实现,具体实现依赖于抽象接口
  4. 接口隔离原则(LSP):类之间的依赖关系应该建立在最小的接口上
  5. 迪米特法则(LOD):一个软件实体应该尽可能少的与其他实体发生相互作用
  6. 开闭原则(OCP):软件中的对象(如类、模块、函数等)应该对于扩展开放,但是对于修改关闭
  7. 组合/聚合复用原则(CARP):尽量使用组合/聚合,而不是通过继承达到复用的目的

设计模式分类

创建型模式

在软件工程中,创建型模式是处理对象创建的设计模式。创建型模式关注的重点在于如何创建对象,其核心思想是要把对象的创建和使用相分离。创建型模式主要分为以下几种:

  1. 工厂方法模式
  2. 抽象工厂模式
  3. 生成器模式
  4. 原型模式
  5. 单例模式

结构型模式

在软件工程中,结构型模式介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。结构型模式主要分为以下几种:

  1. 适配器模式
  2. 桥接模式
  3. 组合模式
  4. 装饰模式
  5. 外观模式
  6. 元模式
  7. 代理模式

行为模式

在软件工程中,行为模式用来识别对象之间的常用交流模式并加以实现,负责对象间的高效沟通和指责委派。行为模式主要分为以下几种:

  1. 责任链模式
  2. 命令模式
  3. 迭代器模式
  4. 中介者模式
  5. 备忘录模式
  6. 观察者模式
  7. 状态模式
  8. 策略模式
  9. 模板方法模式
  10. 访问者模式

参考资料

  1. 设计模式 (计算机)
  2. 设计模式
  3. 什么是设计模式?

原文地址:http://www.cnblogs.com/kokasumi/p/16822398.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性