GRASP 之資訊專家模式 - Kamil Grzybek
問題:將責任分配給物件的基本原則是什麼?
解決方案:將責任分配給具有實現它所需資訊的類。
在下面的示例中, Customer類引用了所有客戶 訂單,因此很自然地負責計算訂單的總價值:
public class Customer : Entity, IAggregateRoot { private readonly List<Order> _orders; public GetOrdersTotal(Guid orderId) { return this._orders.Sum(x => x.Value); } } |
這是最基本的原則,因為事實是 - 如果我們沒有我們需要的資料,我們無論如何都無法滿足要求並分配責任。
(banq注:一般職責行為涉及源與目標兩個方面,例如A-->B,那麼這個行為應該是放在源物件,還是目標物件,或者根本沒有這兩個物件,那麼設計一個源物件,還是設計一個目標物件,資訊專家模式認為設計一個源物件,將這個職責行為包括進來,因為源物件中包含建立目標物件所需的各種資訊。
)
相關文章
- GRASP之間接模式 - Kamil Grzybek模式
- GRASP之控制器模式 - Kamil Grzybek模式
- GRASP之多型性模式 - Kamil Grzybek多型模式
- 比SOLID更重要的與DDD設計相關的GRASP原則 - Kamil GrzybekSolid
- Clean清潔領域模型的幾個特點 -Kamil Grzybek模型
- GRASP模式模式
- 【招聘資訊】騰訊雲資料庫高階專家資料庫
- JS專題之嚴格模式JS模式
- 專家訪談之:可用性專家談網站設計成功的關鍵網站
- 拯救睡眠:專家呼籲手機開發睡眠模式模式
- ChatGPT 指南之像專家一樣寫作ChatGPT
- 酒店專家並不認可 Expedia 的全新競價模式模式
- 山東省軟體評測中心專家解讀資訊化
- 國家資訊中心專家:核心技術受制於人是網路安全最大的隱患
- 上海資訊化專家委大資料專委會昨舉行首次會議大資料
- 資訊系統監理之資訊系統專案管理專案管理
- 一圖搞懂電商模式的專業術語——資訊圖模式
- 大型Java進階專題(六)設計模式之代理模式Java設計模式
- 資訊系統專案管理系列之八:專案成本管理專案管理
- 軟體管理專家 v1.22a 之完美破解
- 每日安全資訊:NSO,一家專業入侵 iPhone 的神祕公司iPhone
- CSS 專家提示CSS
- MySQL專家組MySql
- 資訊系統專案管理系列之五:專案整體管理專案管理
- 資訊系統專案管理系列之六:專案範圍管理專案管理
- 資訊系統專案管理系列之九:專案質量管理專案管理
- Using Geometry to Detect Grasp Poses in 3D Point Clouds3DCloud
- 軟銀收購ARM引資訊保安焦慮:專家呼籲建自主系統
- 專家:加密貨幣生態最終將向傳統金融模式靠攏加密模式
- 資訊系統專案管理系列之十:專案人力資源管理專案管理
- 共享模式 & 專有模式模式
- 大型Java進階專題(八) 設計模式之介面卡模式、裝飾者模式、觀察者模式Java設計模式
- Delphi提高開發效率之GExperts專家的使用說明
- 技術專家or專案專家-專案管理MSN群線上討論(2009.6.23)專案管理
- 理財AI勇闖「無人區」:理解專家、成為專家AI
- 設計模式之禪之代理模式設計模式
- 快手APP家長控制模式開啟方法 快手APP家長控制模式怎麼開啟?APP模式
- 騰訊遊戲學院專家:UE高階效能剖析技術之RHI遊戲