设计模式是什么?
在软件工程中,设计模式(Design Pattern)是对软件设计中常见问题的典型解决方案。它们就像能根据需求进行调整的预制蓝图,可用于解决代码中反复出现的设计问题。
设计模式与方法或库的使用方式不同,你很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码,而是解决特定问题的一般性概念。你可以根据模式来实现符合自己程序实际所需的解决方案。
人们常常会混淆模式和算法,因为两者在概念上都是已知特定问题的典型解决方案。但算法总是明确定义达成特定目标所需的一系列步骤,而模式则是对解决方案的更高层次描述,同一模式在两个不同程序中的实现代码可能会不一样。
算法更像是菜谱,提供达成目标的步骤。而模式更像是蓝图,你可以看到最终的结果和模式的功能,但需要自己确定实现步骤。
设计模式的七大原则
- 单一职责原则(SRP):一个接口或类只有一个原因引起变化
- 里氏替换原则(LSP):所有引用基类的地方必须能透明地使用其子类对象
- 依赖倒置原则(DIP):高层模块不依赖于底层模块,都依赖于抽象;抽象接口不依赖于具体实现,具体实现依赖于抽象接口
- 接口隔离原则(LSP):类之间的依赖关系应该建立在最小的接口上
- 迪米特法则(LOD):一个软件实体应该尽可能少的与其他实体发生相互作用
- 开闭原则(OCP):软件中的对象(如类、模块、函数等)应该对于扩展开放,但是对于修改关闭
- 组合/聚合复用原则(CARP):尽量使用组合/聚合,而不是通过继承达到复用的目的
设计模式分类
创建型模式
在软件工程中,创建型模式是处理对象创建的设计模式。创建型模式关注的重点在于如何创建对象,其核心思想是要把对象的创建和使用相分离。创建型模式主要分为以下几种:
- 工厂方法模式
- 抽象工厂模式
- 生成器模式
- 原型模式
- 单例模式
结构型模式
在软件工程中,结构型模式介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。结构型模式主要分为以下几种:
- 适配器模式
- 桥接模式
- 组合模式
- 装饰模式
- 外观模式
- 元模式
- 代理模式
行为模式
在软件工程中,行为模式用来识别对象之间的常用交流模式并加以实现,负责对象间的高效沟通和指责委派。行为模式主要分为以下几种:
- 责任链模式
- 命令模式
- 迭代器模式
- 中介者模式
- 备忘录模式
- 观察者模式
- 状态模式
- 策略模式
- 模板方法模式
- 访问者模式
参考资料
原文地址:http://www.cnblogs.com/kokasumi/p/16822398.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性