GoF23:设计模式概述

学习设计模式的意义

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

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

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

设计模式的基本要素:

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

GoF23

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

创建型模式(5种)

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

结构型模式(7种)

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

行为型模式(11种)

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

OOP七大原则

开闭原则(总的纲领)

对扩展开放,对修改关闭

里氏替换原则

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

依赖倒置原则

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

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

单一职责原则

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

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

接口隔离原则

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

迪米特法则

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

合成复用原则

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

猜你喜欢

转载自www.cnblogs.com/rainszj/p/12188925.html
今日推荐