【设计模式】设计模式概述以及七大原则

设计模式

  • 设计模式
    • 定义
    • 本质
    • 意义
    • 优点
    • 设计模式的基本要素
    • 常用的七大原则
    • 分类
      • 创建型
      • 结构型
      • 行为型
  • OOP的七大原则
    • 开闭原则
    • 里氏替换原则
    • 依赖倒转原则
    • 单一职责原则
      • 注意
    • 接口隔离原则
    • 合成复用原则
    • 迪米特法则

设计模式

定义

面向对象的一套解决方案,提高代码的可复用性、可维护性、可读性、稳健性、安全性

本质

面向对象设计原则的实际应用

意义

对类的封装性、继承性、多态性以及类的关联关系和组合关系的理解

优点

  • 提高程序员的思维能力、编程能力、设计能力
  • 更好的设计

设计模式的基本要素

  • 模式:在某些场景下,针对某类问题的某种通用的解决方案。
  • 场景:项目所在的环境
  • 问题:约束条件,项目目标等
  • 解决方案:通用、可复用的设计,解决约束达到目标。

常用的七大原则

  1. 单一职责原则
  2. 接口隔离原则
  3. 依赖倒转原则
  4. 里氏替换原则
  5. 开闭原则
  6. 迪米特法则
  7. 合成复用原则

分类

【设计模式】设计模式概述以及七大原则_第1张图片

创建型

创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程。
单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式

结构型

结构型模式:把类或对象结合在一起形成一个更大的结构。
适配器模式、桥街模式、装饰模式、组合模式、外观模式、亨元模式、代理模式

行为型

行为型模式:类和对象如何交互,及划分责任和算法。
模板方法模式、命令模式、访问者模式、迭代模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、责任链模式

OOP的七大原则

开闭原则

  • 最基础、最重要的设计
  • 对扩展开放(提供方),对修改关闭(使用方)
  • 软件需要变化时。尽量扩展软件实体实现

里氏替换原则

继承必须确保超类所拥有的所有的性质在子类中仍然成立

  1. 继承:父类已实现的方法,实际是设计和规范契约,子类随意修改会破坏继承体系
  2. 继承的弊端:程序的侵入性,程序的可移植性降低,增加对像间的耦合性
  3. 引用基类的地方必须能透明的使用子类的对象
  4. 子类尽量不要重写父类的方法

依赖倒转原则

  • 高层模块不该依赖底层模块,二者应该依赖其抽象
  • 抽象不应该依赖细节,细节应该依赖细节
  • 依赖倒置的中心是面向接口编程
  • 使用接口或者抽象的原则是制定好规范,不涉及具体操作,把展现细节的任务交给实现类完成

单一职责原则

  • 一个类应该只负责一项职责
  • 控制类的粒度大小
  • 将对象解耦
  • 提高内聚性

注意

  1. 降低类的复杂度,一个类只负责一项职责
  2. 提高类的可读性,可维护性
  3. 降低变更引起的风险

接口隔离原则

Interface segregation principle
客户端不应该依赖它不需要的接口,即一个类对另外一个类的依赖应该建立在最小的接口上

合成复用原则

尽量先使用组合或者聚合关系等关联关系实现,其次才考虑使用继承关系来实现

迪米特法则

只与朋友交谈不和陌生人说话

  1. 一个对象应该对其他对象保持最少的了解
  2. 类与类关系越密切,耦合度越大
  3. 最少知道原则,只与直接朋友进行通信(有耦合关系)
    合成复用原则
    尽量使用合成/聚合的方式,而不是继承

你可能感兴趣的:(【设计模式】设计模式概述以及七大原则)