go设计模式

刘:https://www.bilibili.com/video/BV1kG411g7h4
https://www.bilibili.com/video/BV1jyreYKE8z

1. 单例模式

2. 简单工厂模式

  1. 代码逻辑:
    • 原始:业务逻辑层 ---> 基础类模块
    • 工厂:业务逻辑层 ---> 工厂模块 ---> 基础类模块
    • 业务层和基础类解耦
  2. 思路:业务层不再直接创建对象,而是调用工厂创建对象,创建对象的细节也在工厂中实现,减轻业务层的压力。
  3. 一个工厂创建的所有对象都有共同的父类,工厂的返回值就是父类指针,父类指针指向子类对象。
  4. 优缺点:适用于创建对象较少的情况,违反了开闭原则。
  5. 开闭原则:应用程序实体(类、模块、方法等)应该对扩展开放但对修改关闭。 换句话说,需要在不更改现有代码的情况下向应用程序添加新功能。

3. 工厂方法模式

  1. 简单工厂模式+开闭原则=工厂方法模式。
  2. 思路:不再只有一个工厂。现在有一个抽象工厂,要创建某个对象就实例化一个对应的具体工厂来创建对象。
  3. 优缺点:遵守了开闭原则,每新增一个产品就要新增一个工厂,类的数量太多。

4. 抽象工厂模式

  1. 用的不多,作用是减少工厂类的数量。
  2. 思路:不再是一个产品一个工厂,而是一个产品族是一个工厂。例如,一个中国工厂,可以生产中国苹果、中国香蕉和中国梨子,如果你想要日本苹果,那还要创建日本工厂。一个产品等级结构是一类产品,例如苹果。https://www.bilibili.com/video/BV1Je4y1b7j9
  3. 新增产品族(工厂)很简单,符合开闭原则,但新增产品等级结构很麻烦,不符合开闭原则。
相关推荐
七月丶20 小时前
别再手动凑 PR 了:这个 AI Skill 会按仓库习惯自动建分支、拆提交、提 PR
人工智能·设计模式·程序员
刀法如飞20 小时前
从程序员到架构师:6大编程范式全解析与实践对比
设计模式·系统架构·编程范式
九狼21 小时前
Flutter + Riverpod +MVI 架构下的现代状态管理
设计模式
静水流深_沧海一粟2 天前
04 | 别再写几十个参数的构造函数了——建造者模式
设计模式
StarkCoder2 天前
从UIKit到SwiftUI的迁移感悟:数据驱动的革命
设计模式
阿星AI工作室2 天前
给openclaw龙虾造了间像素办公室!实时看它写代码、摸鱼、修bug、写日报,太可爱了吧!
前端·人工智能·设计模式
_哆啦A梦3 天前
Vibe Coding 全栈专业名词清单|设计模式·基础篇(创建型+结构型核心名词)
前端·设计模式·vibecoding
阿闽ooo6 天前
中介者模式打造多人聊天室系统
c++·设计模式·中介者模式
小米4966 天前
js设计模式 --- 工厂模式
设计模式
逆境不可逃6 天前
【从零入门23种设计模式08】结构型之组合模式(含电商业务场景)
线性代数·算法·设计模式·职场和发展·矩阵·组合模式