Amadeus's blog Amadeus's blog
首页
  • 前端文章

    • JavaScript
    • Vue
    • TypeScript
    • 前端工程化
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • stylus
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 口语
  • 音标
  • 语法
  • 简单
  • 中等
  • 困难
  • 20年10月
  • 20年11月
  • 20年12月
  • 21年01月
  • 21年02月
  • 21年03月
  • 21年04月
  • 21年05月
  • 21年06月
  • 21年07月
  • 21年08月
  • 21年09月
  • 21年10月
  • 21年11月
  • 21年12月
  • 22年01月
  • 22年02月
  • 22年03月
  • 22年04月
  • 22年05月
  • 22年06月
  • 22年07月
  • 22年08月
  • 22年09月
  • 21年3月
  • 知识笔记
  • 22年5月
  • 22年8月
  • 22年9月
  • 学习
  • 书法
  • 面试
  • 音乐
  • 驾照
  • 深度强化学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Amadeus

起风了,唯有努力生存!
首页
  • 前端文章

    • JavaScript
    • Vue
    • TypeScript
    • 前端工程化
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • stylus
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 口语
  • 音标
  • 语法
  • 简单
  • 中等
  • 困难
  • 20年10月
  • 20年11月
  • 20年12月
  • 21年01月
  • 21年02月
  • 21年03月
  • 21年04月
  • 21年05月
  • 21年06月
  • 21年07月
  • 21年08月
  • 21年09月
  • 21年10月
  • 21年11月
  • 21年12月
  • 22年01月
  • 22年02月
  • 22年03月
  • 22年04月
  • 22年05月
  • 22年06月
  • 22年07月
  • 22年08月
  • 22年09月
  • 21年3月
  • 知识笔记
  • 22年5月
  • 22年8月
  • 22年9月
  • 学习
  • 书法
  • 面试
  • 音乐
  • 驾照
  • 深度强化学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • TypeScript笔记

    • TypeScript是什么
  • 前端工程化

  • 面试

  • 小程序

  • Vue3源码解析

  • 设计模式

  • NestJS笔记

  • JavaScript文章

  • Vue文章

  • 学习笔记

  • 前端
  • 设计模式
Amadeus
2023-07-25
目录

23种设计模式

# 23种设计模式

# 零、设计原则

单一职责原则:一个类只负责一项职责

接口隔离原则:一个类对另一个类的依赖建立在最小接口上

依赖倒转原则:细节依赖抽象。面向接口编程。

里氏替换原则:子类中尽量不要重写父类的方法

开闭原则ocp:多扩展开放,对修改关闭

迪米特法则:只与直接朋友通信

合成复用原则:尽量使用合成/聚合的方式,而不是继承

# 一、创建型模式 5种

单例模式

一个类只有一个对象实例,减少内存空间的占用

分为饿汉式和懒汉式

饿汉式:类加载后立马创建对象实例

懒汉式:实例化时才创建对象实例,对于没有用到的类,不进行加载进一步减少内存空间的浪费。

实现要点:1.私有化构造方法,防止用户通过new的方式构建,这样就没法保证单例了。2.提供一个创建单例的静态公开方法。

饿汉式实现方法单一,静态方法和枚举方法。

懒汉式实现方法多,问题多。线程不安全->线程安全->代码阻塞,性能低->空指针问题->静态内部类最好

原型模式

简单工厂模式(不符合开闭原则)

结构:工厂类、抽象产品类、具体产品类

工厂类需要有一个创建产品的方法,输入产品名,返回对应的产品

工厂方法模式

在简单工厂模式的基础上多了抽象工厂类。一个抽象工厂对应多个具体产品的工厂,一个工厂对应一个产品。

抽象工厂模式(不符合开闭原则)

多了产品品牌和产品类别的概念

一个工厂就是一个品牌,能造各种类别的产品

建造者模式

# 二、结构型模式 7种

代理模式

适配器模式

装饰者模式

桥接模式

外观模式

组合模式

享元模式

# 三、行为型模式 11种

模板方法模式

策略模式

命令模式

责任链模式

状态模式

观察者模式

中介模式

迭代器模式

访问者模式

备忘录模式

解释器模式

编辑 (opens new window)
最近更新
01
最长递增子序列
04-21
02
非递减子序列
04-21
03
全排列
04-21
更多文章>
Theme by Vdoing | Copyright © 2020-2024 Amadeus | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式