分析模式 之 參與者 (Party)

在我們分析模型的時候經常會遇到不同類型的事物在某些特性上有共同點,比如,人和公司,他們都有地址,電話,電子郵件等屬性,在分析模型的時候,我們可能得出如下的模型:




看到上述的模型的時候,我們是否會覺得模型中的冗餘呢?很顯然,我們會想如何將這兩者融合在一起呢,我們偉大的Martin Fowler同志提出了Party模式來描述此種類型的模型。我們用一種通用(父)的類型來定義人和公司,這樣,只需要在模型中指定該通用類型和聯繫方式的關係即可,而人和公司則從屬於該類類型。其模型如下:




在這個時候,大家停下來想一想,第二個模型爲什麼比第一個模型更好,難道只是模型沒有冗餘嗎?很顯然不是。考慮下面的情況,當一個應用中和聯繫方式相關的實體除了人和公司外,還有團隊,子公司,部門等的時候,在第一種模型中,我們應該如何描述呢,很顯然第一種模型將會變得很複雜且混亂。而第二種模型,我們可以很容易增加一種或多種和聯繫方式相關的實體,只是這些實體都是屬於Party的。

從上面的例子我們可以看出,使用Party模式會使得類似的模型變得容易擴展。

回過頭來我們再看看Party模式:

Problem:

問題是什麼呢?問題是當有很多元素擁有相同的特性,或擁有相同責任的時候,我們應該如何去分析和描述它呢?

Solution:

解決方案是,定義一種通用的類型,這些擁有相同責任或特性的元素都從屬於這種類型,我們只需要描述該通用類型的責任或特性即可,這裏我們將這種通用類型稱之爲Party(參與者)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章