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. 新增产品族(工厂)很简单,符合开闭原则,但新增产品等级结构很麻烦,不符合开闭原则。
相关推荐
YGGP1 小时前
【结构型模式】代理模式
设计模式
庄小焱6 小时前
设计模式——中介者设计模式(行为型)
设计模式
庄小焱8 小时前
设计模式——备忘录设计模式(行为型)
设计模式
庄小焱9 小时前
设计模式——代理设计模式(结构型)
设计模式
哆啦A梦的口袋呀9 小时前
基于Python学习《Head First设计模式》第三章 装饰者模式
python·学习·设计模式
哆啦A梦的口袋呀9 小时前
基于Python学习《Head First设计模式》第五章 单件模式
python·学习·设计模式
季鸢10 小时前
Java设计模式之备忘录模式详解
java·设计模式·备忘录模式
摘星编程13 小时前
工厂方法模式深度解析:从原理到应用实战
java·设计模式·软件工程·工厂方法模式
何中应14 小时前
【设计模式-4.7】行为型——备忘录模式
java·设计模式·备忘录模式
suixinger_lmh1 天前
功能结构整理
unity·设计模式·c#·源代码管理