<java與模式> ---電子書
第2.4部分 UML page16
理解: 類圖
一、描述類的類圖
一般如果類不包含內(nèi)部類,則可以將類圖分為四層。
1、第一層描述的是類的名字,如果為斜體則該類為抽象類。
2、第二層描述的是類的屬性,規(guī)則是:[+|-|#]classname<變量名>如果有下劃線則表示其為靜態(tài)的。+表示為public、—表示為private、#表示為protected。
3、第三層描述的是類的方法,規(guī)則是:[+|-|#]funcationname<變量名>如果有下劃
則表示其為靜態(tài)的。
4、第四層表示的是類的性質(zhì),也就是類的屬性,不過(guò)一旦有該屬性,類就要實(shí)現(xiàn)方法,set和get方法。
接口類的類圖和類的類圖幾乎一樣。
問題:該類中包含有內(nèi)部類的有是如何分層的呢?
二、描述對(duì)象的類圖
他們的關(guān)系會(huì)發(fā)生在類和類、類和接口、接口和接口之間。
類圖的關(guān)系可以分為:一般關(guān)系、關(guān)聯(lián)關(guān)系、聚合關(guān)系、合成關(guān)系、依賴關(guān)系。
1、一般關(guān)系表現(xiàn)在類或則接口之間的繼承關(guān)系。
2、關(guān)聯(lián)關(guān)系是指他用另一個(gè)類的實(shí)例作為其屬性,而聚合關(guān)系基本上也是這個(gè)意思不過(guò)聚合主要體現(xiàn)的是總體和四肢的關(guān)系,如:類的屬性是用一個(gè)對(duì)象數(shù)組實(shí)現(xiàn)的,那么該類就和實(shí)現(xiàn)這個(gè)屬性數(shù)組的類是一個(gè)聚合關(guān)系。
3、合成關(guān)系要比聚合關(guān)系要強(qiáng),他在每一個(gè)時(shí)刻只能夠和一個(gè)對(duì)象發(fā)生合成關(guān)系,他不能夠共享。
4、依賴關(guān)系是在一個(gè)的方法中引用了一個(gè)類的對(duì)象作為是參數(shù),或是引用了一個(gè)類的對(duì)象作為局部變量或引用類的靜態(tài)方法或?qū)傩浴?/SPAN>
問題:合成關(guān)系中的共享,到底什么不能夠共享?怎么理解這個(gè)不能夠共享?合成關(guān)系很難理解,“他在每一個(gè)時(shí)刻只能夠和一個(gè)對(duì)象發(fā)生合成關(guān)系”這句話與關(guān)聯(lián)關(guān)系中不就一樣了嗎?也就是說(shuō),當(dāng)我們直接用一個(gè)類A來(lái)聲明一個(gè)對(duì)象作為一個(gè)類B的屬性,那么我們就可以說(shuō)這個(gè)類A關(guān)聯(lián)類B,那也可以說(shuō)類A合成類B嗎?
第十二章 簡(jiǎn)單工廠模式
“開—閉”原則要求一個(gè)系統(tǒng)的設(shè)計(jì)準(zhǔn)許在系統(tǒng)不需要修改的情況下擴(kuò)展其功能。
理解:簡(jiǎn)單工廠模型簡(jiǎn)單說(shuō)就是:抽象產(chǎn)品——>具體產(chǎn)品<-----------工廠類
在特殊的情況下,也就是當(dāng)只有一個(gè)具體產(chǎn)品的時(shí)候,我們可以將其中抽象產(chǎn)品不要,但是這種用法看上去不是很多。一個(gè)更為特殊的用法是將抽象產(chǎn)品和工廠類合并.