四色原型概念辨析

2022-01-11 13:10:15 字數 3493 閱讀 3863

四色原型概念辨析

jay

description

表示「描述」,更具體的說,它是「分類目錄條目」描述。它一是一組反覆使用的值。

ppt(

party-place-thing

)用於扮演不同角色的組織、人、地點、事務。

ppt是指乙個具體的,可以作為單個個體(每個單個個體之間有唯一識別符號)被識別、區分出來的物件。

在《uml

和模式應用》一書中舉了乙個有趣的例子(第9章,

109頁,「為什麼使用描述類」),從這個例子中可以看出

desc

的根源:

假設一種商品有

100件,每一件商品都單獨(注意,是單獨)記錄了它的

id、名稱、**等資訊,這些資訊是每件商品獨有的(盡量每件商品的名稱和**都是一樣的),在系統中就表示為每件商品是乙個單獨的例項,在資料庫中就表示為每件商品是一條單獨的記錄。這些商品都儲存在庫存中(庫存可以看作例項的集合,也是乙個儲存商品的資料表)。

現在每售出一件商品,我們都會從庫存中移除它,在系統中表示為從庫存集合中釋放乙個例項,在資料庫中就表示為從資料表中刪除一條記錄。那麼最後當商品全部售完後,我們所有的對此商品的記錄都被抹掉了,沒有人知道這件商品的名稱和**。

上述問題表明,物件需要其它事物來記錄其描述(也可以稱為規格說明),

desc

的價值也有在於:從現實角度來看,我們需要描述來記錄事物的資訊;從計算器角度看,描述可以減少冗餘。

《uml

和模式應用》同進歸納了一些使用

desc

的情景:

1.需要有關商品或服務的描述,獨立於任何商品或服務的現有例項。

2.刪除期所描述事物的例項後,會導致資訊丟失,而這些資訊是需要維護的(以後會使用到)。

3.減少冗餘或重複資訊。

有趣的是,《

uml和模式應用》中建議給

product

增加描述類

productdesc

,這是把

product

類當做ppt

,把productdesc

類當做desc

。但在通常情況下,我們都喜歡把

productdesc

命名為product

(記錄商品的資訊),而把真正的

product

命名為stock

(庫存商品,記錄一件具體的、有唯一

id的商品),那麼就是把

product

類當做desc

,把stock

當做ppt

了。綜上所述,

desc

的本質就是從

ppt中提煉出來、為

ppt服務,方便

ppt的維護,並減少

ppt冗餘的值物件。

desc

是一組可以被反覆使用的值,也就是說,它是值物件(

value object

)。例如有乙個

line

(線段)物件,而線段是由一組

point

(座標點)組成的。乙個

point

可以被多個

line

反覆使用,例如乙個

point

的座標是(

x=10

,y=20

),當線段

a經過這個座標時,就會使用這個

point

,而線段

b經過同乙個座標時,使用的也是這個

point

,那麼我們可以把

point

看作一組能夠被反覆使用的值,這些值只要賦予了初值,那麼無論它被哪個物件使用,它的值都保持不變。

應用四色原型進行分析,

line

就是乙個

ppt,而

point

就是desc

。point

就是一組能夠被多個

line

反覆使用的值。

可以是分級的樹形結構。

例如硬碟除了可以從品牌和容量兩個方面描述之外,還可以從型別方面描述而型別就是乙個分級的樹形結構。硬碟的型別可以分為行動硬碟和非行動硬碟,非行動硬碟又進一步可以分為

ide硬碟和

scis

硬碟,這就是乙個單根樹結構。

對硬碟物件來說,硬碟型別是一組可以被反覆使用的值,

綜上所述,

desc

就是乙個值物件,供

ppt反覆使用,並且

desc

的值是固定的,

ppt在使用中不會更改

desc

的值。

ppt

是由desc

組成的(當然除了

desc

還有其它

ppt自己的簡單屬性,但這些屬性基本上可以視為

ppt的「匿名」

desc

),desc

就是ppt

屬性的歸納和抽象。

例如在點餐系統中,每個餐館都有乙份選單,而「宮保雞丁」和「清炒菜心」這些菜譜幾乎每個餐館的選單上都有,那麼我們就會把菜譜抽象出來,供多個選單使用。

如果使用四色原型進行分析,選單就是乙個

ppt,而多個選單裡面反覆出現的「宮保雞丁」和「清炒菜心」就可以提煉為

類似的場景還有貨品與品牌。貨品是乙個

ppt,而品牌就是供貨品反覆使用的

desc

,它裡面有廠家名稱等資料,這些資料貨品僅僅是使用,並不會修改它。而且其中的「批號」因為是簡單型別(乙個字串),所以直接作為貨品的乙個屬性,但它也可以抽象為乙個

desc

,所以批號字段就是貨品的「匿名」

與role

辨析

role

就是角色,它是

ppt參與

mi的一種方式。

role

只有依附於

ppt和

mi才有意義。

但難點是,

ppt也允許直接參與mi(

ppt直接關聯

mi),那麼什麼時候讓

role

「搭橋」,而什麼時候直接讓

ppt參與mi?

DDD 用 「四色原型」 進行 「聚合設計」

在企業應用的上下文中,四色原型是領域模型的一種原型,原型的意思是指領域中的任何模型及其關係都可以抽象為 四色原型 四色原型可以用這句話進行描述 某個人 party 的角色 partyrole 在某個地點 place 的角色 placerole 用某個東西 thing 的角色 thingrole 做了...

DDD 用 「四色原型」 進行 「職責分配」

維護內部狀態的一致性。換句話說,聚合的職責只限於維護期自身的狀態。可以將聚合的職責分為兩類 修改職責 只能修改聚合本身的狀態,關聯的其它聚合資訊不能修改。讀取職責 可以讀取聚合本身的狀態,關聯的其它聚合資訊也能讀取。維護乙個聚合例項業務邏輯的一致性。因為有些聚合例項的業務邏輯會依賴很多外部服務 如倉...

驗證四色原理

問題描述 如圖所示,表示乙個地圖有6個地區,它對應著乙個6 6的鄰接矩陣 見輸出樣例 輸出一種合理的著色方案,要求任意兩個相鄰的地區都不能同色。輸入格式 第1行為n,表示地區個數,n 20。以下為n n的鄰接矩陣,a i j 0表示地區i與地區j不相鄰,a i j 1表示地區i與地區j相鄰。輸出格式...