首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式:享元模式 (1) - 核心概念、內在/外在狀態、編輯器應用與純享元結構

     編輯:關於C語言

享元模式核心

Flyweight (拳擊蠅量級) → 「享元」意指輕量級物件。以共享高效支援大量細粒度物件。

關鍵:區分兩種狀態

狀態類型特性儲存位置
內在狀態物件內部固有、不隨環境變化享元物件內部 (可共享)
外在狀態隨環境變化、不可共享客戶端維護,使用時傳入

兩者相互獨立,外在狀態在建立後、使用時才傳入享元內部。

經典應用:文字編輯器

  • 每個字母 = 一個享元物件,內在狀態 = 字元本身。
  • 外在狀態 = 位置、字型、樣式。
  • 文中所有 'a' 共用同一字母物件,僅位置/字型不同。

純享元結構 (UML)

四大角色

  1. Flyweight (抽象享元):定義公共介面,外在狀態以參數傳入。
  2. ConcreteFlyweight (具體享元):實作介面,儲存內在狀態 (與環境無關),可共享。
  3. FlyweightFactory (享元工廠):建立/管理享元,檢查現有實例重用或新建。
  4. Client (客戶端):維護享元引用,自行儲存外在狀態。

所有享元皆可共享,為最基礎形式。後續將介紹咖啡攤/咖啡廳實例與複合享元。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved