博客 RSS 訂閱

程序員Seven - 【設計模式】從事件驅動到即時更新:掌握觀察者模式的核心技巧

概述 定義:又被稱為發佈-訂閲(Publish/Subscribe)模式,它定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態變化時,會通知所有的觀察者對象,使他們能夠自動更新自己。 結構 在觀察者模式中有如下角色: Subject:抽象主題(抽象被觀察者),抽象主題角色把所有觀察者對象保存在一個集合裏,每個主題都可以有任意數量的觀察者,抽象主題提供一個接口

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】使用中介者模式實現鬆耦合設計

概述 一般來説,同事類之間的關係是比較複雜的,多個同事類之間互相關聯時,他們之間的關係會呈現為複雜的網狀結構,這是一種過度耦合的架構,即不利於類的複用,也不穩定。例如在下左圖中,有六個同事類對象,假如對象1發生變化,那麼將會有4個對象受到影響。如果對象2發生變化,那麼將會有5個對象受到影響。也就是説,同事類之間直接關聯的設計是不好的。 如果引入中介者模式,那麼同事類之間的關係將變為星型結構,從下右

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】遍歷集合的藝術:深入探索迭代器模式的無限可能

概述 定義:提供一個對象來順序訪問聚合對象中的一系列數據,而不暴露聚合對象的內部表示。 結構 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定義存儲、添加、刪除聚合元素以及創建迭代器對象的接口。 具體聚合(ConcreteAggregate)角色:實現抽象聚合類,返回一個具體迭代器的實例。 抽象迭代器(Iterator)角色:定義訪問和遍歷聚合元素的接口,通常包含 ha

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】通過訪問者模式實現分離算法與對象結構

概述 定義:封裝一些作用於某種數據結構中的各元素的操作(將數據結構於元素進行分離),它可以在不改變這個數據結構的前提下定義作用於這些元素的新的操作。 結構 訪問者模式包含以下主要角色: 抽象訪問者(Visitor)角色:定義了對每一個元素(Element)訪問的行為,它的參數就是可以訪問的元素,它的方法個數理論上來講與元素類個數(Element的實現類個數)是一樣的,從這點不難看出,訪問者模式

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】備忘錄模式教你如何優雅地處理狀態快照

概述 備忘錄模式提供了一種狀態恢復的實現機制,使得用户可以方便地回到一個特定的歷史步驟,當新的狀態無效或者存在問題時,可以使用暫時存儲起來的備忘錄將狀態復原,很多軟件都提供了撤銷(Undo)操作,如 Word、記事本、Photoshop、IDEA等軟件在編輯時按 Ctrl+Z 組合鍵時能撤銷當前操作,使文檔恢復到之前的狀態;還有在瀏覽器中的後退鍵、數據庫事務管理中的回滾操作、玩遊戲時的中間結果存檔

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - 【設計模式】使用解釋器模式簡化複雜的語法規則

概述 如上圖,設計一個軟件用來進行加減計算。我們第一想法就是使用工具類,提供對應的加法和減法的工具方法。 //用於兩個整數相加 public static int add(int a,int b){ return a + b; } //用於兩個整數相加 public static int add(int a,int b,int c){ return a + b + c; }

設計模式 , JAVA , 後端

收藏 評論

程序員Seven - SpringCloud帶你走進微服務的世界

認識微服務 隨着互聯網行業的發展,對服務的要求也越來越高,服務架構也從單體架構逐漸演變為現在流行的微服務架構。這些架構之間有怎樣的差別呢? 單體架構 單體架構:將業務的所有功能集中在一個項目中開發,打成一個包部署。 單體架構的優缺點如下: 優點: 架構簡單 部署成本低 缺點: 耦合度高(維護困難、升級困難) 分佈式架構 分佈式架構:根據業務功能對系統做拆分,每個業務功能模塊作為獨立

設計模式 , JAVA , 後端

收藏 評論

打盹的猴子 - Java 設計模式:裝飾者模式(Decorator Pattern)

一、模式定義 裝飾者模式屬於結構型設計模式,允許通過動態包裝對象的方式為對象添加新功能,提供比繼承更靈活的擴展方式。該模式通過組合替代繼承,遵循開閉原則(對擴展開放,對修改關閉)。 二、核心角色 Component(組件接口) 定義被裝飾對象的公共接口 ConcreteComponent(具體組件) 實現基礎功能的具體類 Dec

裝飾者模式 , 設計模式 , JAVA

收藏 評論

打盹的猴子 - 策略模式(Strategy Pattern)深度解析教程

一、模式定義 策略模式屬於行為型設計模式,通過定義算法族並將其封裝為獨立的策略類,使得算法可以動態切換且與使用它的客户端解耦。該模式通過組合替代繼承,符合開閉原則(對擴展開放,對修改關閉)。 二、核心角色 Strategy(策略接口) 定義所有支持的算法的公共接口 ConcreteStrategy(具體策略) 實現策略接口的具體算法

設計模式 , JAVA , 策略模式

收藏 評論

聽風 - 面試背誦版:23種設計模式 + 六大設計原則 + 面試高頻問答

一、設計模式的來源 設計模式(Design Pattern)是前輩們對代碼開發經驗的總結,是解決特定問題的一系列套路。它不是語法規定,而是一套用來提高代碼可複用性、可維護性、可讀性、穩健性以及安全性的解決方案。 1995 年,GoF(Gang of Four,四人組/四人幫)合作出版了《設計模式:可複用面向對象軟件的基礎》一書,共收錄了 23 種設計模式,從此樹立了軟件設計模式領域的里程碑,人稱

設計模式 , 面試 , 後端

收藏 評論

kuailedehuanggua - 24個寫出漂亮代碼的小技巧

「Java學習 + 面試指南」:javaguide.cn(一份涵蓋大部分 Java 程序員所需要掌握的核心知識)這篇文章我會總結一些實用的有助於提高代碼質量的建議,內容較多,建議收藏!內容概覽: 提取通用處理邏輯註解、反射和動態代理是 Java 語言中的利器,使用得當的話,可以大大簡化代碼編寫,並提高代碼的可讀性、可維護性和可擴展性。我們可以利用註解 + 反射和註解+動態代理來提取類

設計模式

收藏 評論

異常君 - Java 中的享元模式:對象共享的藝術

你是否曾經遇到過系統因創建大量重複對象而導致內存佔用激增的情況?在處理成千上萬個文本字符、UI 控件或遊戲中的粒子效果時,如果為每個實例分配獨立內存,很快就會耗盡系統資源。這時,享元模式就像是 Java 開發中的"內存省錢法",它能讓你在不犧牲功能的前提下大幅降低內存消耗。 什麼是享元模式? 享元模式(Flyweight Pattern)是一種結構型設計模式,核心思想是共享細粒度對象,減少內存使用

設計模式 , 工廠 , JAVA , 對象 , 後端

收藏 評論

唐青楓 - php 設計模式詳解

簡介 PHP 設計模式是對軟件開發中常見問題的可複用解決方案,通過標準化的結構提升代碼的可維護性、擴展性和複用性。 創建型模式(對象創建) 關注對象的創建過程,解決 “如何靈活、安全地生成對象” 的問題。 單例模式(Singleton) 意圖:確保一個類僅有一個實例,並提供全局訪問點。 適用場景:全局配置、數據庫連接池、日誌管理器(需共享狀態)。 實現要點: 私有構造函數(禁止外部實例化

設計模式 , php

收藏 評論

善良的匕首_ccWZFD - 併發設計模式實戰:Future/Promise

今天為大家帶來的是併發設計模式實戰系列,第十五章Future/Promise,廢話不多説直接開始~ 一、核心原理深度拆解 1. 異步計算雙階段模型 ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Task │───│ Future │───│ Callback │ │ Submission │───│

promise , 設計模式 , 線程 , 併發 , 異步

收藏 評論

自由自在像小鳥 - 從字面到本質,用最直白的方式理解依賴倒置原則

從字面到本質,用最直白的方式理解依賴倒置原則(Dependency Inversion Principle, DIP): 一、字面拆解:四個字的含義 依賴: 指代碼中模塊/類之間的使用關係(如A類調用B類的方法) 例如:Service依賴Repository讀寫數據 倒置: 把傳統的依賴方向"反轉"過來 類比:

設計模式

收藏 評論

晴空月明 - 結構型模式-架構解耦與擴展實踐

結構型模式聚焦於對象間的組合關係,通過優化類與對象的裝配方式,實現系統的靈活性與可擴展性。在分佈式系統中,由於多節點協作、跨網絡通信及異構環境集成等特性,傳統結構型模式需進行適應性改造,以應對分佈式特有的複雜性(如網絡延遲、節點故障、協議異構)。本文系統解析適配器、橋接、組合、裝飾器、外觀、享元、代理七大結構型模式在分佈式場景下的演化與實踐。 一、適配器模式:異構系統的橋樑 1.1 模式核心與分佈

設計模式

收藏 評論

晴空月明 - 行為型模式-協作與交互機制

行為型模式聚焦於對象間的行為交互,通過規範對象協作方式提升系統的靈活性與可擴展性。在分佈式系統中,由於多節點異步通信、網絡不可靠性及狀態一致性挑戰,行為型模式需針對分佈式特性進行適應性設計。本文從觀察者、策略、命令、責任鏈、狀態五大核心行為型模式出發,系統解析其在分佈式場景下的演化與實踐。 一、觀察者模式:分佈式事件的發佈 - 訂閲機制 1.1 模式核心與分佈式適配 觀察者模式通過發佈 - 訂閲機

設計模式

收藏 評論

晴空月明 - 單一職責原則(SRP)深度解析

在設計模式的七大基本原則中,單一職責原則(Single Responsibility Principle, SRP) 是最基礎也最易被忽視的原則。其核心思想是 “一個類應該只有一個引起它變化的原因”,即類的職責需高度內聚,避免因多職責耦合導致的維護災難。本文從定義解構、實踐邊界、反模式分析及面試應答策略四個維度,系統解析 SRP 的本質與應用,確保內容深度與去重性。 一、SRP 的核心定義與

設計模式

收藏 評論

小帆聊前端 - 前端設計模式深度解讀:從混沌到有序,寫出可維護的代碼

前端設計模式深度解讀:從混沌到有序,寫出可維護的代碼 前言:你是否也被這些代碼問題折磨過? "這個彈窗組件改一處就崩三處,到底誰寫的?" "為什麼同樣的表單驗證邏輯,每個頁面都要複製粘貼?" "狀態管理越來越亂,新增功能要改五六個地方?" "接手的項目像一團亂麻,根本不敢動核心邏輯?" 前端開發中,"能跑就行" 的代碼在初期或許能快速交付,但隨着項目迭代,維護成本會指數級增長。設計模式不是銀彈,卻

設計模式 , 前端

收藏 評論

程序員一諾python - 【Flask開發】嘿馬文學web完整flask項目第7篇:1.項目目錄實現,2.數據庫的設計【附代碼文檔】

🏆🏆🏆教程全知識點簡介:1. 內容 2. 目標 1.1產品與開發 1.2環境配置 1.3 運行方式 1.4目錄説明 2.用户認證 2.1微某信平台 Json Web Token(JWT) 定義路由,書架管理--添加書籍 3.書架 4.1分類列表 5.搜索 5.3搜索-精準高匹配推薦 6.小説 6.4推薦-同類熱門推薦 7.瀏覽記錄 8.1配置-閲讀偏好 8.配置 9.1項目部署uWSGI

flask , 後端 , 前端 , Python

收藏 評論

程序員一諾python - 【Flask開發】嘿馬文學web完整flask項目第8篇:1.同類熱門推薦,2.小説目錄【附代碼文檔】

🏆🏆🏆教程全知識點簡介:1. 內容 2. 目標 1.1產品與開發 1.2環境配置 1.3 運行方式 1.4目錄説明 2.用户認證 2.1微某信平台 Json Web Token(JWT) 定義路由,書架管理--添加書籍 3.書架 4.1分類列表 5.搜索 5.3搜索-精準高匹配推薦 6.小説 6.4推薦-同類熱門推薦 7.瀏覽記錄 8.1配置-閲讀偏好 8.配置 9.1項目部署uWSGI

flask , 後端 , 前端 , Python

收藏 評論

正點原子 - 《ESP32-S3使用指南—IDF版 V1.6》第二十一章 IIC_OLED實驗

第二十一章 IIC_OLED實驗 1)實驗平台:正點原子DNESP32S3開發板 2)章節摘自【正點原子】ESP32-S3使用指南—IDF版 V1.6 3)購買鏈接:https://detail.tmall.com/item.htm?id=768499342659 4)全套實驗源碼+手冊+視頻下載地址:http://www.openedv.com/docs/boards/esp32/ATK-DNE

編程 , 嵌入式 , 物聯網 , 單片機 , 程序員

收藏 評論

騰訊雲開發者 - 從效率革命到技術覺醒-解鎖 AI 編程的未來密碼 | TVP 技術夜未眠

引言 隨着大模型時代的到來,工具類的 AI 應用數量呈現出一種爆發性的增長趨勢,其中 AI 編程助手正以一種驚人的速度改變着開發者的工作方式,大幅度地提升了開發效率,並在悄然間重塑編程的本質與邊界。但是由此也引發了相關從業者關於程序員未來的擔憂與廣泛討論。 AI 將“取代程序員”還是“造就文盲程序員” ?從低代碼開發到 AI 驅動的“需求-生成-迭代”的 AI 敏捷模式,“AI 原生開發”的時代

編程 , 騰訊雲

收藏 評論

正點原子 - 【618狂歡節】活動商品78折起!萬用表,電烙鐵,焊台,開發板等爆款產品統統78折起!

【618狂歡節】正點原子旗艦店618活動火熱進行中,活動商品限時78折起!萬用表,智能電烙鐵,智能焊台,數控電源,開發板等正在火熱售賣中!感興趣的小夥伴趕緊進店看看吧! 一、爆款工具推薦: 【DM40萬用表】https://detail.tmall.com/item.htm?id=859521935894 【T80智能電烙鐵】https://detail.tmall.com/item.htm?id

編程 , 嵌入式 , 單片機 , 開發 , 程序員

收藏 評論