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. 新增產品族(工廠)很簡單,符合開閉原則,但新增產品等級結構很麻煩,不符合開閉原則。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72039.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72039.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72039.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

搭建數字化生態平臺公司:痛點與蚓鏈解決方案

在數字技術突飛猛進的當下,數字化生態平臺成為眾多企業實現創新發展、拓展業務版圖的 “秘密工具”。今天,咱們就一起來聊聊搭建這類平臺的公司,看看它們有啥獨特之處,又面臨哪些難題。 一、面臨的痛點 (一&#xff0…

標記符號“<”和“>”符號被稱為“尖括號”或“角括號”

你提到的“<”和“>”符號被稱為“尖括號”或“角括號”。它們常用于編程語言中表示類型參數&#xff08;如泛型&#xff09;、HTML標簽&#xff08;如<div>&#xff09;、數學中的不等式&#xff08;如< 5&#xff09;等。 好的&#xff0c;我來用通俗的方式解…

云平臺DeepSeek滿血版:引領AI推理革新,開啟智慧新時代

引言&#xff1a;人工智能的未來——云平臺的卓越突破 在當今科技飛速發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;技術正深刻地改變著我們生活與工作方式的方方面面。作為AI領域的創新者與領航者&#xff0c;云平臺始終走在技術前沿&#xff0c;憑借無窮的熱情…

自然語言處理:文本規范化

介紹 大家好&#xff01;很高興又能在這兒和大家分享自然語言處理相關的知識了。在上一篇發布于自然語言處理&#xff1a;初識自然語言處理-CSDN博客為大家初步介紹了自然語言處理的基本概念。而這次&#xff0c;我將進一步深入這個領域&#xff0c;和大家聊聊自然語言處理中一…

HTTP非流式請求 vs HTTP流式請求

文章目錄 HTTP 非流式請求 vs 流式請求一、核心區別 服務端代碼示例&#xff08;Node.js/Express&#xff09;非流式請求處理流式請求處理 客戶端請求示例非流式請求&#xff08;瀏覽器fetch&#xff09;流式請求處理&#xff08;瀏覽器fetch&#xff09; Python客戶端示例&…

C語言機試編程題

編寫版本&#xff1a;vc2022 1.求最大/小值 #include<stdio.h> int main(){int a[50],n;int max, min;printf("請輸入您要輸入幾個數");scanf_s("%d", &n);printf("請輸入您要比較的%d個數\n",n);for (int i 0; i<n; i) {scanf_…

c++ 多個.cpp文件運行

目錄 方法 1&#xff1a;將其他文件中的 main 改為普通函數 方法 2&#xff1a;使用頭文件組織代碼 方法 3&#xff1a;條件編譯&#xff08;僅用于調試或特殊需求&#xff09; 方法 4&#xff1a;創建類或命名空間管理邏輯 在一個C項目中&#xff0c;多個.cpp文件不能同…

基于OFDR的層壓陸相頁巖油儲層中非對稱裂縫群傳播的分布式光纖監測

關鍵詞&#xff1a;OFDR、分布式光纖傳感、裂縫傳播 一. 概述 四川盆地涼高山組優質頁巖油儲層存在復雜的垂直重疊巖性&#xff0c;大陸頁巖油儲層存在發育層理&#xff0c;薄層和天然裂縫&#xff0c;對水平井多級壓裂技術的裂縫網絡形態控制和監測構成挑戰。本研究提出了一…

UniApp 按鈕組件 open-type 屬性詳解:功能、場景與平臺差異

文章目錄 引言一、open-type 基礎概念1.1 核心作用1.2 通用使用模板 二、主流 open-type 值詳解2.1 contact - 客服會話功能說明平臺支持代碼示例 2.2 share - 內容轉發功能說明平臺支持注意事項 2.3 getUserInfo - 獲取用戶信息功能說明平臺支持代碼示例 2.4 getPhoneNumber -…

【大模型】Ubuntu下 fastgpt 的部署和使用

前言 本次安裝的版本為 fastgpt:v4.8.8-fix2。 最新版本fastgpt:v4.8.20-fix2 問答時報錯&#xff0c;本著跑通先使用起來&#xff0c;就沒有死磕下去&#xff0c;后面bug解了再進行記錄。 ? github連接&#xff1a;https://github.com/labring/FastGPT fastgpt 安裝說明&…

【GenBI實戰】python腳本實現基于DeepSeek api的數據查詢和圖表可視化

寫在前面 生成式 BI (GenBI) 正在改變我們與數據交互的方式。它允許用戶使用自然語言提出問題&#xff0c;并自動獲得數據洞察&#xff0c;而無需編寫復雜的 SQL 查詢或手動創建圖表。本文將帶你動手實戰&#xff0c;使用 Python 和 DeepSeek API (或其他類似的大語言模型 API…

Web-to-Web和Server-to-Serve歸因方法

Web2Web 和 S2S 歸因方法 1. Web2Web 歸因方法 原理&#xff1a; Web2Web&#xff08;Web-to-Web&#xff09;歸因方法主要用于跟蹤用戶在網站之間的行為路徑。它通過瀏覽器中的Cookie或其他標識符來追蹤用戶在不同網站之間的行為&#xff0c;從而確定用戶轉化的路徑。 使用…

c++中迭代器和指針有什么區別?

在 C 中&#xff0c;迭代器和指針雖然在某些場景下有相似的行為&#xff0c;但它們在設計目的、功能和使用場景上有本質區別。以下是詳細對比和最佳實踐&#xff1a; 一、核心區別對比表 特征指針迭代器本質原生數據類型&#xff0c;直接存儲內存地址類對象&#xff0c;抽象容…

如何使用Docker搭建哪吒監控面板程序

哪吒監控(Nezha Monitoring)是一款自托管、輕量級的服務器和網站監控及運維工具,旨在為用戶提供實時性能監控、故障告警及自動化運維能力。 文檔地址:https://nezha.wiki/ 本章教程,使用Docker方式安裝哪吒監控面板,在此之前,你需要提前安裝好Docker. 我當前使用的操作系…

ONLYOFFICE + Ollama,本地AI模型的高效集成方案

這篇文章將繼續探討如何在 ONLYOFFICE 中連接并高效使用各類 AI 模型。今天的主角是 Ollama——一個專為本地部署和運行 AI 模型的平臺。如何使用 Ollama 并與 ONLYOFFICE 編輯器集成&#xff0c;利用其強大的 AI 模型處理文本任務。以下是詳細的操作步驟和使用方法。 關于 ONL…

單片機開發為什么不用C++?

最近受到很多初學者的靈魂拷問&#xff0c;單片機需要學C嗎&#xff1f; 還別說&#xff0c;問這問題的還挺多的&#xff0c;今天以一篇文章來說下。 很多小白覺得&#xff0c;C語言這老古董&#xff0c;語法簡陋得像石器時代的產物&#xff0c;為什么還牢牢霸占著單片機開發的…

2025-02-28 學習記錄--C/C++-C語言 scanf 中,%s 不需要加

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; C語言 scanf 中&#xff0c;%s 不需要加 & 格式化符號變量類型是否需要加 &原因%s字符數組不需要數組名本身就是指針&a…

數字樣機:從技術革新到產業賦能的演進之路

摘要&#xff1a;數字樣機作為產品全生命周期數字化的核心技術&#xff0c;旨在通過虛擬化建模與仿真技術重構傳統工業研發范式。 數字樣機&#xff08;Digital Prototype&#xff0c;DP&#xff09;技術是一種數字化設計技術&#xff0c;利用數字樣機替代原型樣機&#xff0c…

Ubuntu20.04安裝Isaac sim/ Isaac lab

2025年之后omniverse好像不能直接裝Isaac sim了&#xff0c;要跳轉到官網鏈接。 Isaac lab要在Isaac sim安裝之后才能安裝 Ubuntu20.04安裝Isaac sim/ Isaac lab Isaac sim安裝Isaac lab安裝 Isaac sim安裝 找到官網 Isaac sim官方文檔 下載下來解壓到本地文件夾&#xff0c…

【前端】XML,XPATH,與HTML的關系

XML與HTML關系 XML&#xff08;可擴展標記語言&#xff09;和 HTML&#xff08;超文本標記語言&#xff09;是兩種常見的標記語言&#xff0c;但它們有不同的目的和用途。它們都使用類似的標記結構&#xff08;標簽&#xff09;&#xff0c;但在設計上存在一些關鍵的差異。 XML…