GoF23:设计模式概述

Posted rainszj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GoF23:设计模式概述相关的知识,希望对你有一定的参考价值。

学习设计模式的意义

? 设计模式的本质是对面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。

? 提高抽象思维能力、知道它的应用场景

? 软件设计模式只是一种引导,要根据实际的业务做出恰当的选择

设计模式的基本要素:

  • 模式名称
  • 问题
  • 解决方案
  • 效果(优缺点,时间和空间复杂度的平衡

GoF23

一种思维,一种态度,一种进步

创建型模式(5种)

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

结构型模式(7种)

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

行为型模式(11种)

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

OOP七大原则

开闭原则(总的纲领)

对扩展开放,对修改关闭

里氏替换原则

? 继承必须确保超类所拥有的性质在子类中仍然成立,也就是说,子类只是对基类的一种扩展,而对基类中的方法尽量不要修改。

依赖倒置原则

? 要面向接口编程,不要面向实现编程。降低程序之间的耦合性

高层模块不应该依赖底层模块,抽象不依赖于具体,具体依赖于抽象。

单一职责原则

? 一个类只执行一个任务,一个方法只让它干一件事情。不应该让它承担过多的任务。

控制类的粒度大小,将对象解耦,提高其内聚性。封装

接口隔离原则

要为各个类建立它们需要的专用接口,降低程序的耦合度

迪米特法则

只与你的直接朋友交谈,不跟"陌生人"说话

合成复用原则

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

以上是关于GoF23:设计模式概述的主要内容,如果未能解决你的问题,请参考以下文章

GoF 2323种设计模式与OOP七大原则概述

java设计模式:概述与GoF的23种设计模式

86 设计模式23种设计模式概述

设计模式GOF23之第一回

GOF23设计模式之单例模式(singleton)

GOF23设计模式之组合模式(composite)