设计模式的分类及设计原则简介
一、 设计模式是什么
设计模式是在特定的环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用
二、 设计模式的分类
1 根据目的分类
- 创建型:主要用于创建对象
- 结构型:主要用于处理类或对象的组合
- 行为型:主要用于描述类或对象怎样交互和怎样分配职责
2 根据范围分类
- 类模式:处理类和子类之间的关系,这些关系通过继承建立,在编译时就被确定下来,是一种静态关系
- 对象模式:处理对象间的关系,这些关系在运行时变化,更具有动态性
三、GoF设计模式
范围/目的 | 创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|---|
类模式 | 工厂方法模式 | (类)适配器模式 | 解释器模式 模板方法模式 |
对象模式 | 抽象工厂模式 建造者模式 原型模式 单例模式 | (对象)适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 | 职责链模式 命令模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 访问者模式 |
四、常用面向对象设计原则(7个)
设计原则名称 | 定义 |
---|---|
单一职责原则 | 一个对象应该只包含单一的职责,并且该职责被完整的 封装在一个类中 |
开闭原则 | 软件实体应当对扩展开放,对修改关闭 |
里氏代换原则 | 所有引用基类的地方必须能透明的使用其子类的对象 |
依赖倒转原则 | 高层模块不应该依赖底层模块,他们都应该依赖抽象, 抽象不应该依赖细节,细节应该依赖于抽象 |
接口隔离原则 | 客户端不应该依赖那些他不需要的接口 |
合成复用原则 | 优先使用对象组合,而不是通过继承来达到复用的目的 |
迪米特法则 | 每一个软件对其他单位都只有最少的知识,而且局限于 那些与本单位密切相关的软件单位 |