中文国产日韩欧美视频,午夜精品999,色综合天天综合网国产成人网,色综合视频一区二区观看,国产高清在线精品,伊人色播,色综合久久天天综合观看

領域驅(qū)動設計之體會二

時間:2023-04-25 08:42:32 心得體會 我要投稿
  • 相關推薦

領域驅(qū)動設計之體會二

領域驅(qū)動設計之體會二2011-02-25 23:25領域驅(qū)動設計中分別用實體、值對象和服務來表示模型。其中所謂實體是具有唯一性的對象。在建模中,應該盡早識別出實體。而值對象與實體恰恰相反,它不具有唯一性,其目的是為了減少建立實體的開銷。值對象為了描述領域的特殊方面,我們只關心它的屬性,而不關心其唯一性。有些領域中的動作,它們是一些動詞,看上去卻不屬于任何對象。通常這樣的行為是跨越多個對象的。我們將這樣的行為,顯示的聲明為服務。在領域中,不應該為每一個需要的操作來建立一個服務。但是當一個操作凸顯為一個領域中的重要概念時,就需要為它建立一個服務了。以下是服務的三個特征:

1.服務執(zhí)行的操作涉及一個領域概念,這個領域概念通常不屬于一個實體或者值對象。

2.被執(zhí)行的操作涉及到領域中的其他對象。

3.操作是無狀態(tài)的。

需要注意的是,我們應該嚴格區(qū)分領域?qū)拥姆⻊蘸突A設施層的服務。設計時要確保領域?qū)颖3謴钠渌麑又懈綦x開來。

為了降低模型的復雜性,便于系統(tǒng)并行開發(fā),領域驅(qū)動中也有模塊的概念。通過把整個系統(tǒng)分割為不同的模塊,來提高代碼的質(zhì)量,增進內(nèi)聚,消除耦合。模塊應該具有良好的接口,通過這些接口為其他模塊提供服務。

聚合、工廠和資源庫都與管理領域?qū)ο蟮纳芷谙嚓P。

聚合通過一個作為根的實體來訪問其他屬性,用以保持數(shù)據(jù)的一致性。根是外部可以訪問的唯一對象。聚合是用來定義對象所有權和邊界的領域模式。我們通常不追求模型的完整性,而是讓它們盡量地簡單和容易理解。聚合通過唯一的根實體,建立邊界將內(nèi)部和外部的對象劃分開來。然而實際使用中,根實體的構造函數(shù)往往會很大很復雜。當對象的每個客戶程序持有關于對象構建的專有知識時,就意味著領域?qū)ο蠛途酆系姆庋b被破壞了。我們可以利用工廠來完成封裝復雜的對象創(chuàng)建過程。一種工廠是給聚合的根增加一個方法,這個方法用來創(chuàng)建對象,強化所有不變量,返回創(chuàng)建對象的引用或者拷貝。更好的方法是創(chuàng)建一個專用工廠類,這樣可以保持對象的簡單,不會造成復雜的構建邏輯的混亂。以下情況不需要創(chuàng)建工廠:

1.構造過程并不復雜;

2.對象的創(chuàng)建不涉及到其他對象的創(chuàng)建,所有的屬性需要傳遞給構造函數(shù)。

3.客戶程序?qū)崿F(xiàn)很感興趣,可能希望選擇使用策略模式。

4.類是特定的類型,不涉及到繼承,所以不用在一系列的具體實現(xiàn)中進行選擇。

資源庫的目的是封裝所有獲取對象引用所需的邏輯。工廠和資源庫都是模型驅(qū)動設計中的模式。工廠關注的是對象的創(chuàng)建,而資源庫關心的是已經(jīng)存在的對象。需要注意:工廠是"純領域"的,而資源庫會包含對基礎設施的連接。

領域驅(qū)動設計是軟件設計的方法論,從思想到結構,闡述了軟件分析設計思路和方法。對我們的實際工作很有借鑒意義。

以上是對領域驅(qū)動設計的一點體會,實踐是最好的老師,把理論融入實踐中,并取得成果,其樂無窮啊。就拿以前看一些經(jīng)典源代碼,有的類被命名為XXXRepository,我就很不理解這樣命名的目的,學習了領域驅(qū)動設計,便知道了作者的用心。

【領域驅(qū)動設計之體會二】相關文章:

經(jīng)典的領域驅(qū)動設計在代碼實踐方面的心得體會04-28

活動設計科學領域教案08-26

活動設計健康領域教案12-19

幼兒活動設計健康領域教案02-16

活動設計健康領域教案7篇12-20

活動設計健康領域教案(7篇)12-24

靜坐之體會04-27

名片的設計之電子教案04-28

秋風之勁(二)04-27

健康領域心得體會02-20