ABP官方文件翻譯 3 2 值物件

2022-03-08 16:18:06 字數 1299 閱讀 7298

值物件

介紹

"展現領域描述性層面且沒有概念性身份的物件稱之為值物件。"(eric evans)。

和實體相反,實體有身份標示(id),值物件沒有身份標示。如果兩個實體的身份標示是不同的,那麼就認為他們是不同的物件/實體,即使他們的所有屬性都是一樣的。考慮兩個不同的人有相同的名字、姓氏和年齡,但是他們是不同的人,如果他們的身份編號不同的話。但是,對於乙個位址(經典的值物件)類,如果兩個位址有相同的國家、城市、街道編號等等,則認為為相同的位址。

在ddd中,值物件是領域物件的另一種型別,可以包含業務邏輯,是領域的重要組成部分。

值物件基類

abp有乙個valueobject基類,可以被繼承用來輕鬆建立值物件型別。address值物件型別示例如下:

public

class address : valueobject //

a reference to a city entity.

public

string street

public

int number

public address(guid cityid, string street, int

number)

}

var address1 = new address(new guid("

21c67a65-ed5a-4512-aa29-66308faab5af

"), "

baris manco street

", 42

);var address2 = new address(new guid("

21c67a65-ed5a-4512-aa29-66308faab5af

"), "

baris manco street

", 42

);assert.equal(address1, address2);

assert.equal(address1.gethashcode(), address2.gethashcode());

assert.true(address1 ==address2);

assert.false(address1 != address2);

即使在記憶體中是不同的物件,在我們的領域中也認為他們是完全相同的。

最佳實踐

一些值物件的最佳實踐:

返回主目錄

ABP文件翻譯 值物件

本人是abp初學者,在看英文文件和 tkb至簡 的abp框架理論研究總結 典藏版 時,發現大神 tkb至簡中少了對value objects的翻譯,看文件是新的,大神沒時間把,小弟給補充上。用於描述領域的某個方面而本身沒有概念標識的物件稱為 a value object eric evans 對於實...

ABP官方文件翻譯 3 5 規約

規約 建立規範類 使用倉儲規約 組合規約 討論介紹 規約模式是一種特別的軟體設計模式,通過使用布林邏輯將業務規則鏈結起來重新調配業務規則。維基百科 尤其是,它通常用來為實體或其他業務物件定義可復用的過濾器。示例 在這個部分,我們將看到規約模式的必要性。本部分是通用的,和abp的實現沒有必然的關係。假...

ABP官方文件翻譯 3 4 領域服務

領域服務 一些 介紹 領域服務 或者在ddd中單純的服務 用來執行領域操作和業務規則。eric evans在他的ddd書中描述了乙個好的服務有三個特徵 1.與領域概念關聯的操作,但不是實體或值物件的自然組成部分。2.介面的定義依照領域模型的其他元素。3.操作是無狀態的。不像應用服務那樣獲取或返回dt...