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

C# 設計模式實戰:Prototype 原型模式完整解析(三)

     編輯:關於C語言

採用時機

  • 代碼層面:執行期指定具體類別、避免昂貴初始化過程、避免使用工廠方法實現多型
  • 應用層面:產品多變化/多等級、建立過程極耗時(計算量大、需從網路/資料庫載入)、欲將建立細節隔離

實現要點

  • .NET 拷貝機制:Object.MemberwiseClone() 淺拷貝;序列化/反序列化深拷貝(代價較大)
  • 仍需抽象/具體類別分層,透過穩定抽象減少 Client 修改
  • 抽象層級可依需求調整:Enemy 為高層抽象,亦可細分為 Footman/Tank 等中層抽象

注意事項

  • 深/淺拷貝選擇:引用型別欄位需深拷貝,否則共享同一物件導致副作用
  • 封裝破壞風險:拷貝並修改意味著原型需公開更多資料,既有系統導入成本較高

拷貝策略決策表

情境建議方式
純值型別欄位 / 不可變參考型別MemberwiseClone (淺拷貝)
含可變參考型別欄位 (List, 自訂類別等)序列化深拷貝 / 手動實作 ICloneable
效能極度敏感、大量頻繁複製手動實作深拷貝、考慮 Immutable 設計
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved