一、 Introduction【介绍】

设计模式:提供了一种广泛的可重用的方式来解决我们日常编程中常常遇见的问题。设计模式并不一定就是一个类库或者第三方框架,它们更多的表现为一种思想并且广泛地应用在系统中。它们也表现为一种模式或者模板,可以在多个不同的场景下用于解决问题。设计模式可以用于加速开发,并且将很多大的想法或者设计以一种简单地方式实现。当然,虽然设计模式在开发中很有作用,但是千万要避免在不适当的场景误用它们。

二、 Category【分类】

根据目的和范围,设计模式可以分为五类。
按照目的分为:创建设计模式,结构设计模式,以及行为设计模式。
按照范围分为:类的设计模式,以及对象设计模式。

1. 按照目的分,目前常见的设计模式主要有23种,根据使用目标的不同可以分为以下三大类:

2.按照范围分为:类的设计模式,以及对象设计模式

  • 类的设计模式(Class patterns):用于类的具体实现的设计模式。包含了如何设计和定义类,以及父类和子类的设计模式。

  • 对象设计模式(Object patterns): 用于对象的设计模式。与类的设计模式不同,对象设计模式主要用于运行期对象的状态改变、动态行为变更等。

三、 DesignPatternsPrinciple【设计模式原则】

设计模式六大原则

  • 开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
  • 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象.
  • 依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
  • 单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
  • 接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。
  • 迪米特法则:一个对象应该对其他对象保持最少的了解。

最新文章

  1. js中push(),pop(),unshift(),shift()的用法小结
  2. SQL server数据缓存依赖
  3. 如何做一个avalon组件
  4. what is docker
  5. Maven学习总结(一)——Maven入门
  6. Cygwin解决Windows远程登录linux服务器
  7. POJ_3258_River_Hopscotch_[NOIP2015]_(二分,最大化最小值)
  8. MSDN Webcast 系列课程
  9. Mysql 基础语法1
  10. iOS安全攻防之使用 Frida 绕过越狱设备检测
  11. 使用XML序列化实现系统配置 - 开源研究系列文章
  12. Objective-C构造方法
  13. verilog 之流水灯
  14. Hybrid设计--离线更新
  15. 服务器cpu负载过高问题排查
  16. 安全删除linux旧内核的方法
  17. ViewPager一屏显示多个item,及边缘滑动事件优化
  18. Java对象序列化与RMI
  19. 使用cocos创建的项目,如何进行源码调试?
  20. 2018.07.23 hdu5828 Rikka with Sequence(线段树)

热门文章

  1. 设置程序启动时加载的storyboard
  2. 浮动float、浮动影响和清除浮动
  3. udp的第一个例子
  4. apt安装zabbix
  5. Linux用户配置文件、口令配置文件、组配置文件
  6. 如何综合运用对称加密技术、非对称加密技术(公钥密码体制)和Hash函数 保证信息的保密性、完整性、可用性和不可否认性?
  7. 系统C盘空间严重的不足的几个清理方法
  8. PHP面试常考内容之Memcache和Redis(2)
  9. Linux基础:初识shell之系统命令基础
  10. Solution -「CodeChef JUMP」Jump Mission