tag 設計模式

標籤
貢獻47
128
05:27 PM · Oct 25 ,2025

@設計模式 / 博客 RSS 訂閱

eacape - 策略模式

策略是對算法的封裝,將不同的算法封裝到具有相同接口的獨立的類中,使算法本身和客户端分離開來,並且算法之間可以相互替換。 在策略模式中主要有以下幾種角色 上下文信息類(Context):用於存放和執行需要使用的具體策略類以及客户端調用的邏輯。 抽象策略類(Strategy):定義策略的共有方法。 具體策略類(ConcreteStrategy 等):實現抽象策略類定義的共有方法。 下面使用

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 命令模式

命令模式就是將一組操作得調用封裝在一個對象裏面,這個對象稱作命令對象。 例如我們可以有一個專門用於開啓、關閉電器的命令,通過調用這命令就可以開關電器。 system start 冰箱 system close 冰箱 system start 空調 system close 空調 那麼我們可以寫一個關於電器的命令類,在創建對象的時候可以與具體電器的組合實現對具體電器的控制。 也就是我們為您可以將

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 適配器模式

目錄 類適配器 對象適配器 兩種適配器的選擇 使用場景 類適配器 下面我們使用Mac電腦和U盤適配的一個簡單實例來了解類適配器的實現方式。 首先創建一個Mac的接口有讀寫的數據的功能 public interface MacInterface { void write(String msg); String read(); } 然後有一個u盤的實例 public cl

設計 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

mob64ca140c3859 - 信息系統項目管理教程和系統架構設計

1 前言   本文主要是針對一個留學生信息管理與分析系統的分析與總結,主要闡述項目的完整設計方案和一些軟件結構特點,並採用不同的視圖來描述項目的軟件系統概念原型。   工程實踐項目介紹:工程實踐是一個關於留學生信息管理與分析的平台。該系統是為用户提供有關留學服務信息的雙邊平台,管理人員定期維護系統,學生可以通過該系統搜索學校相關信息,並根據所提供的自身信息獲得相應的留

信息系統項目管理教程和系統架構設計 , 泛化 , 設計模式 , 軟件架構 , 架構 , 後端開發

收藏 評論

DevUI團隊 - Angular依賴注入模式的應用和玩法案例

1 注入,一種組件樹狀層級通信模式 設計模式 1.1 組件通信模式 在Angular工程開發中,通常我們使用Input屬性綁定和Output事件綁定進行組件通信,然而Input和Output卻只能在父子組件中傳遞信息。組件根據調用關係形成一棵組件樹,如果只有屬性綁定和事件綁定,那麼兩個非直接關係組件要通信,需要通過各個連接點本身,中間人需要不斷處理和傳遞一些它本身不需要知道的信息(如圖1左)。

angular , devui , 依賴注入 , 設計模式 , 前端

收藏 評論

Will - 命令模式實現 undo & redo

前端 undo redo 功能是非常常見的,通常會使用命令模式來實現。 下面以一個低代碼編輯器的例子,來介紹 JavaScript 是如何使用命令模式來實現 undo redo 功能的。 命令模式定義 首先,我們來看一下命令模式的結構示意圖。 在命令模式中,關鍵是定義了一個 Command 接口,它有 execute 和 undo 兩個方法,具體的命令類都需要實現這兩個方法。調用者(Invo

命令模式 , 設計模式 , Javascript

收藏 評論

mb688aca45159a6 - 兩款強大的文件對比工具完全指南:Beyond Compare 與 WinMerge使用教程(附下載)

為什麼需要文件對比工具 在日常工作中,我們經常需要比較兩個文件或文件夾的差異——無論是代碼審查、文檔版本管理,還是數據核對。手動對比不僅費時費力,還容易遺漏細節。這時候,專業的文件對比工具就成為了必備利器。 本文將介紹兩款強大的文件對比工具:商業級的 Beyond Compare 和開源免費的 WinMerge,幫助您根據實際需求選擇合適的工具。 軟件下載

文件對比工具 , 設計模式 , 架構 , 人工智能 , 壓縮包 , Css , 前端開發 , HTML

收藏 評論

jordana - 設計模式(二十三)——狀態模式與策略模式區別_51CTO博客

狀態模式和策略模式的快速區別方法 一句話區分 策略模式:我主動選擇算法(主動切換) 狀態模式:狀態自動轉換行為(被動切換) 實戰快速判斷方法 看"誰來決定"行為 策略模式:客户端決定使用哪個算法 狀態模式:狀態對象自己決定下一個狀態 場景測試法 問自己這個問題:

狀態模式 , 開閉原則 , 設計模式 , 後端開發 , 策略模式 , 筆記 , Python

收藏 評論

用户bPbzEjV - C語言中的面向切面編程(AOP)

概念 首先給出一段由ChatGPT給出的簡短的AOP概念: AOP是一種編程方法,用來將在程序中多處重複出現的代碼(比如日誌、權限控制)從主要業務邏輯中抽取出來,提高代碼的模塊化和可維護性。 抽取後的代碼會在原始的業務邏輯代碼中特定的位置執行,這些位置由切點(Pointcut)定義。通常會在方法執行前、執行後、拋出異常時等特定點執行抽取出的代碼,這些點被稱為連接點(Join Point)。

設計模式 , 嵌入式linux , linux編程 , 程序員 , c

收藏 評論

信息流星 - 【愚公系列】2022年05月 二十三種設計模式(十二)-代理模式(Proxy Pattern)_5月月更_愚公搬代碼

代理模式(Proxy) 定義 代理是一種結構型設計模式,讓你能夠提供對象的替代品或其佔位符。代理控制着對於原對象的訪問,並允許在將請求提交給對象前後進行一些處理。 前言 1. 問題 舉個例子:有這樣一個消耗大量系統資源的巨型對象, 你只是偶爾需要使用它,並非總是需要。 你可以實現延遲初始化:在

設計模式 , c++ , Css , 代理模式 , 前端開發 , ide , 後端 , HTML

收藏 評論

技術極先鋒 - 5分鐘速讀之Rust權威指南(三十四)面向對象

面向對象設計模式的實現 狀態模式(state pattern)是一個面向對象設計模式。該模式的關鍵在於定義值的一系列內含狀態。這些狀態體現為一系列的狀態對象(state objects),同時值的行為隨着其內部狀態而改變。我們將編寫一個博客發佈結構體的例子,它擁有一個包含其狀態的字段,該字段可以是 “draft”、“review” 或 “publi

字段 , 狀態模式 , 設計模式 , rust , Css , 前端開發 , HTML

收藏 評論

charon_5f4765a39cea7 - vue 源碼解析(3-2-1,數據響應式)

Vue源碼解析 推薦可以先去看下總結:vue解析總結 之前我們解析了mini-vue的響應式實現,和虛擬dom庫的實現,現在我們就來解析一下vue內部具體是如何做的,看看它在我們簡易實現上增加了什麼。 準備工作: 首先下載一份vue源代碼 地址:https://github.com/vuejs/vue 這個版本是2.6的,分析這個版本的原因: 到目前為止vue3.0正式

vue.js , 設計模式 , virtual-dom , compiler

收藏 評論

eacape - 中介者模式

中介者維護一組用户的交互,用户之間通過中介者進行交互,而不是直接交互。 中介者模式種一般有以下角色 抽象中介者:定義中介者需要的執行方法。 具體中介者:實現用户交互的具體邏輯。 用户類:引入中介者,向中介者輸出需要交互的內容。 下面通過一個婚介中心的實例來實現中介者模式 抽象中介者 - 婚介中心 public interface DatingAgency { /**

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

eacape - 觀察者模式

觀察者模式也被稱作“發佈-訂閲模式”,因此其對象之間是發佈和訂閲的角色。 在對象間定義一對多依賴,當一個對象的狀態改變,依賴它的對象收到通知並自動更新。 抽象主題(Subject)角色:也叫抽象目標類,它提供了一個用於保存觀察者對象的聚集類和增加、刪除觀察者對象的方法,以及通知所有觀察者的抽象方法。 具體主題(Concrete Subject)角色:也叫具體目標類,它實現抽象目標中的通知方

面向對象編程 , 設計模式 , JAVA , 面向對象設計模式 , 後端

收藏 評論

江户川亮仔 - php 中的 DI 依賴注入

🎈 什麼是 DI / 依賴注入 依賴注入DI 其實本質上是指對類的依賴通過構造器完成 自動注入 通俗來説,就是你當前操作一個類,但是這個類的某些方法或者功能不是單單隻靠這個類就能完成的,而是要 藉助另一個類 的才能完成的 最直接的標誌就是傳參數據為對象的時候。嚴格來説,你想在一個類中操作另一個類,這兩個類之間形成了相互依賴關係,傳參的方式叫 注入 🎈 依賴注入出現的原因 在未使用

依賴注入 , 經驗 , 設計模式 , php , 程序員

收藏 評論

我叫喵手呀 - 避免陷入反模式,掌握Java最佳實踐,讓你的代碼更高效、可維護!

(全文目錄:) 開篇語 哈嘍,各位小夥伴們,你們好呀,我是喵手。運營社區:C站/掘金/騰訊雲/阿里雲/華為雲/51CTO;歡迎大家常來逛逛   今天我要給大家分享一些自己日常學習到的一些知識點,並以文字的形式跟大家一起交流,互相學習,一個人雖可以走的更快,但一羣人可以走的更遠。   我是一名後端開發愛好者,工作日常接觸到最多的就是Java語言啦,所以我都儘量

代碼審查 , 設計模式 , 後端開發 , JAVA , 代碼質量

收藏 評論

eacape - 橋接模式

將抽象和具體實現分離,通過抽象類來關聯其具體實現,減少類之間的耦合。 下面通過一個車廠和汽車品牌的實例來實現橋接模式 汽車品牌的抽象 接口 裏面聲明一個獲取汽車品牌的方法 public interface Brand { String brandName(); } 車廠抽象類 其中會組合汽車品牌的抽象 裏面聲明一個輸出汽車信息的抽象方法 public abstract class Dep

設計模式 , 設計原則 , JAVA , 面向對象設計模式 , 後端

收藏 評論

程序員田同學 - 設計模式之享元模式

本文通過優化買票的重複流程來説明享元模式,為了加深對該模式的理解,會以String和基本數據類型的包裝類對該模式的設計進一步説明。 讀者可以拉取完整代碼到本地進行學習,實現代碼均測試通過後上傳到碼雲。 一、引出問題 鑑於小王之前的優質表現,老王決定帶小王出去旅遊一下,但在火車站買票時卻陷於了長長的隊伍。 老王注意到,每次售票員賣票時都重新走一遍賣票的所有流程,很明顯,如果始發地和目的地如果一樣的成

設計模式 , JDK , 享元模式 , string

收藏 評論

kkkK2008 - 單例模式+線程安全

概念 程序的生命週期內只有一個實例的存在 場景 日誌記錄器、數據庫連接池、線程池等 實現 #include iostream #include mutex #include boost/noncopyable.hpp using namespace std; // 版本一 // 創建即初始化-eager initiali

c++11 , 設計模式

收藏 評論

jump__jump - 利用中介模式開發全局控制器

中介模式定義了一個單獨的(中介)對象,來封裝一組對象之間的交互。將這組對象之間的交互委派給與中介對象交互,來避免對象之間的直接交互。 在實際的項目中,程序由許多對象組成,對象間的交流錯綜複雜。 隨着應用程序的規模增大,對象越來愈多,他們之間的關係也越來複雜。對象間很容易出現相互引用而導致程序無法運行。同時開發者需要改變或者刪除某一個對象時候,需要查找並且改造所有引用到它的對象。這樣一來,改造的成

性能優化 , 前端工程化 , 設計模式 , 中介者模式 , Javascript

收藏 評論

hedzr - 談 C++17 裏的 Observer 模式 - 4 - 信號槽模式

上上上回的 談 C++17 裏的 Observer 模式 介紹了該模式的基本構造。後來在 談 C++17 裏的 Observer 模式 - 補/2 裏面提供了改進版本,主要聚焦於針對多線程環境的暴力使用的場景。再後來又有一篇 談 C++17 裏的 Observer 模式 - 再補/3,談的是直接綁定 lambda 作為觀察者的方案。 Observer Pattern - Part IV 所以嘛,我

觀察者模式 , c++11 , 設計模式 , design-pattern , c++17

收藏 評論

hedzr - 談 C++17 裏的 FlyWeight 模式

回顧享元模式,考慮實作它的各種問題。 Prologue 略過 FlyWeight Pattern 理論 享元模式,是將複雜對象的相同的組成元素抽出並單獨維護的一種結構型設計模式。這些相同的組成元素被稱為共享元件,它們在一個單獨的容器中被唯一性地管理,而複雜對象只需持有到該唯一實例的參考,而無需重複創建這樣的相同的元素,從而能夠大幅度地削減內存佔用。 以字處理器為例,每個字符都具有獨立的、區別於其它

c++11 , 設計模式 , design-pattern , c++ , c++17

收藏 評論

HuiZhu - 面對那坨5000行的"祖傳代碼",你是否也曾想過離職?

當你顫抖着雙手點開那個名為 OrderManager.java 的文件,滾動條彷彿深不見底的黑洞——5328行代碼,260個if-else嵌套,沒有任何註釋,上一次修改記錄是三年前離職的"大神"。 老闆讓你"加個小功能",你卻感覺像是在拆彈:剪斷紅線,可能是新增功能成功;剪斷藍線,整個生產環境可能瞬間崩塌。 這就是每個程序員的夢魘——"防禦性編程"變成了"不敢動編程"。 我們常説"代碼是寫給人看的

generative-ai , 設計模式 , 軟件架構 , 代碼重構 , prompt

收藏 評論