当前位置: 首页 > news >正文

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. 新增产品族(工厂)很简单,符合开闭原则,但新增产品等级结构很麻烦,不符合开闭原则。

相关文章:

  • 1688订单管理接口的功能与应用场景
  • 算法之排序算法
  • Oracle数据库的启动与关闭
  • `maturin`是什么:matu rus in python
  • 基于 Vllm 在linux 私有化部署DeepSeek-R1以及使用RESTful API的方式使用模型
  • 宝塔webhooks与码云实现自动部署
  • Cursor配置MCP Server
  • RabbitMQ系列(三)基本概念之Consumer
  • Python:字符串编码,常见操作,列表及常见操作
  • Linux系统软件管理
  • DeepSeek 开源狂欢周(一)FlashMLA:高效推理加速新时代
  • nacos数据同步原理能说下吗?
  • Django基础环境准备
  • 基因型—环境两向表数据分析——品种生态区划分
  • AI技术为旅行社打开新流量入口
  • python-leetcode-使用最小花费爬楼梯
  • 【JSON2WEB】15 银河麒麟操作系统下部署JSON2WEB
  • 【计算机网络】TCP三次握手,四次挥手以及SYN,ACK,seq,以及握手次数理解
  • Opencv之sift特征检测和FLANN 匹配器进行指纹特征匹配
  • StableDiffusion本地部署 3 整合包猜想
  • 做一个商城网站需要提交那些文件/深圳网站优化推广
  • wordpress logo设置/上海关键词优化排名软件
  • php做网站主要怎么布局/企业微信营销管理软件
  • 辽宁最好的男科医院/网站seo技术
  • 360网站做不了网银怎么办/百度推广代理公司哪家好
  • 国家合同模板网站/seo网络培训