设计模式:001_设计模式概述

88 阅读2分钟

设计模式概述

软件工程中,设计模式是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。

设计模式的目的

编写软件过程中,开发人员面临来自耦合性、内聚性以及可维护性、可扩展性、重用性、灵活性等多方面的挑战。 使用设计模式是为了可重用代码,提高代码的可扩展性和可维护性。

  • 代码重用性(相同功能代码,不用多次编写)
  • 代码可读性(编程规范性,便于其他开发人员阅读和理解)
  • 代码可扩展性(新增功能特性,非常方便)
  • 代码可靠性(新增功能特性,对原来的功能没有影响)
  • 使程序呈现高内聚低耦合的特性(一个类和一个方法,只做一件事;减少类与类之间的互相调用;减少同一类中的方法与方法互相调用)

设计模式七大原则

设计模式的原则,是开发人员编写代码时应当遵守的原则,也是对各种设计模式进行设计的基础。

  • 开闭原则
  • 单一职责原则
  • 接口隔离原则
  • 依赖倒置原则
  • 里氏替换原则
  • 迪米特原则(最少知道原则)
  • 合成复用原则

设计模式分类

创建型模式,共 5 种 创建型模式关注点是如何创建对象,其核心思想是要把对象的创建和使用相分离,这样使得两者能相对独立地变换。

  • 单例模式
  • 工厂方法模式
  • 抽象工厂模式
  • 原型模式
  • 建造者模式

结构型模式,共 7 种 结构型模式主要涉及如何组合各种对象以便获得更好、更灵活的结构。 虽然面向对象的继承机制提供了最基本的子类扩展父类的功能,但结构型模式不仅仅简单地使用继承,而更多地通过组合与运行期的动态组合来实现更灵活的功能。

  • 适配器模式
  • 桥接模式
  • 装饰者模式
  • 组合模式
  • 外观模式
  • 享元模式
  • 代理模式

行为型模式,共 11 种 行为型模式主要涉及算法和对象间的职责分配。通过使用对象组合,行为型模式可以描述一组对象应该如何协作来完成一个整体任务。

  • 模板模式
  • 命令模式
  • 访问者模式
  • 迭代器模式
  • 观察者模式
  • 中介者模式
  • 备忘录模式
  • 解释器模式
  • 状态模式
  • 策略模式
  • 责任链模式