- 相關(guān)推薦
UML類關(guān)系個人總結(jié)
1.泛化和關(guān)聯(lián),實現(xiàn)在語義其實也是依賴關(guān)系,但他們有特定的含義和結(jié)果,應(yīng)該使用專用的線型符號來表達(dá)。所以單分出來。2.泛化和實現(xiàn)很好區(qū)分,不必細(xì)說,區(qū)分關(guān)聯(lián)和依賴關(guān)系的方法:關(guān)聯(lián)在語義上有表現(xiàn)類實例之間的對應(yīng)關(guān)系,所以有重數(shù)的概念(一對一,一對多等),依賴在語義上強調(diào)類與類的關(guān)系,沒有重數(shù)的概念。
3.雖然在語義上,組合是聚合的一種特殊形式,稱為組合聚合(Composite Aggregation),強調(diào)組合者管理被組合者的全部生命周期,圖上卻把它們畫成同級。因為,習(xí)慣上把沒有特殊說明的聚合看成是共享聚合(Shared Aggregation),應(yīng)使用空心菱形與組合聚合(Composite Aggregation)進(jìn)行區(qū)分。這樣分類,要強調(diào)在設(shè)計階段要嚴(yán)格區(qū)分一個聚合是共享聚合還是組合聚合,選擇不同符合。
4.多元關(guān)聯(lián)在UML圖中并不常見,認(rèn)為程序員習(xí)慣上把一個多元關(guān)聯(lián)處理成多個二元關(guān)聯(lián),這似乎是人類大腦處理復(fù)雜關(guān)系的本能方式,大家很自然的就會這樣做。
5.創(chuàng)建與實例化的語義很相似,許多資料沒有講清它們的區(qū)別。我認(rèn)為,實例化專用于工廠類的,強調(diào)一個類的某個方法創(chuàng)建并返回了另一個類的實例,也就是說有工廠類中有一個方法,其行為的定義就是實例化對象。而創(chuàng)建關(guān)系有所不同,創(chuàng)建者的一個方法創(chuàng)建了另一個類的實例但不返回,此方法要完成其他行為需要創(chuàng)建這個實例而已。
6.細(xì)化關(guān)系出現(xiàn)在同一個概念的不同版本之間,同一個概念在不同的設(shè)計階段可能出現(xiàn)不同版本,后出現(xiàn)的的版本是先前版本的細(xì)化,一般用不到。因為我認(rèn)為一個概念的不同版本不應(yīng)該出現(xiàn)在同一個UML圖中,對同一個圖,一般只表現(xiàn)當(dāng)前設(shè)計階段下的模型,沒必要包含歷史不同版本。
7.跟蹤關(guān)系也是表現(xiàn)的不同模型中的相似概念,但不要求精確的對應(yīng)關(guān)系。我總結(jié)有兩種場景:不同開發(fā)階段的模型,如設(shè)計階段的模型中的一個類trace需求階段模型的另一個概念;不同子系統(tǒng)的模型,如客戶端模型的一個用于顯示數(shù)據(jù)的類trace服務(wù)端模型的一個保存數(shù)據(jù)的類。
8.替代關(guān)系也挺特殊,一個東東可以替代另外一個東東,在泛化和實現(xiàn)中其實是隱藏了替代關(guān)系的,如繼承關(guān)系中,子類能替代父類,實現(xiàn)同一接口的不同類也能互相替代。個人認(rèn)為泛化和實現(xiàn)都實現(xiàn)替代的機制,單獨列出一個替代關(guān)系,是讓它用于其他機制實現(xiàn)的替代關(guān)系,如:C++使用運算符重載機制,自己定義一個大整數(shù)類型,可以代替內(nèi)置的整數(shù)類型,這就沒有使用繼承機制。
9.大多數(shù)使用(usage)關(guān)系,大多數(shù)情況下,其實沒有必要再細(xì)分類型。具體的使用方式叫給源代碼說明就可以了。更何況,一個類使用另外一個類,可能既包含調(diào)用(call)又包含創(chuàng)建(creation),這時候用使用來概括就可以了。
【UML類關(guān)系個人總結(jié)】相關(guān)文章:
工程類個人總結(jié)05-25
工程類個人總結(jié)05-25
建筑類個人總結(jié)范文09-08
銷售類個人工作總結(jié)03-25
工程類個人工作總結(jié)05-25
工程類個人工作總結(jié)09-09
建筑類個人工作總結(jié)02-23
工程類個人工作總結(jié)05-25
勞動關(guān)系工作總結(jié)03-22