设计模式概述
软件工程中,设计模式是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。
设计模式的目的
编写软件过程中,开发人员面临来自耦合性、内聚性以及可维护性、可扩展性、重用性、灵活性等多方面的挑战。 使用设计模式是为了可重用代码,提高代码的可扩展性和可维护性。
- 代码重用性(相同功能代码,不用多次编写)
- 代码可读性(编程规范性,便于其他开发人员阅读和理解)
- 代码可扩展性(新增功能特性,非常方便)
- 代码可靠性(新增功能特性,对原来的功能没有影响)
- 使程序呈现高内聚低耦合的特性(一个类和一个方法,只做一件事;减少类与类之间的互相调用;减少同一类中的方法与方法互相调用)
设计模式七大原则
设计模式的原则,是开发人员编写代码时应当遵守的原则,也是对各种设计模式进行设计的基础。
- 开闭原则
- 单一职责原则
- 接口隔离原则
- 依赖倒置原则
- 里氏替换原则
- 迪米特原则(最少知道原则)
- 合成复用原则
设计模式分类
创建型模式,共 5 种 创建型模式关注点是如何创建对象,其核心思想是要把对象的创建和使用相分离,这样使得两者能相对独立地变换。
- 单例模式
- 工厂方法模式
- 抽象工厂模式
- 原型模式
- 建造者模式
结构型模式,共 7 种 结构型模式主要涉及如何组合各种对象以便获得更好、更灵活的结构。 虽然面向对象的继承机制提供了最基本的子类扩展父类的功能,但结构型模式不仅仅简单地使用继承,而更多地通过组合与运行期的动态组合来实现更灵活的功能。
- 适配器模式
- 桥接模式
- 装饰者模式
- 组合模式
- 外观模式
- 享元模式
- 代理模式
行为型模式,共 11 种 行为型模式主要涉及算法和对象间的职责分配。通过使用对象组合,行为型模式可以描述一组对象应该如何协作来完成一个整体任务。
- 模板模式
- 命令模式
- 访问者模式
- 迭代器模式
- 观察者模式
- 中介者模式
- 备忘录模式
- 解释器模式
- 状态模式
- 策略模式
- 责任链模式