[UML漫談]
話說(shuō)"工欲善其工需利其器",有了好的工具,好的表達(dá)方式,能給我們的工作變得簡(jiǎn)單而優(yōu)雅.
為了更好的講解設(shè)計(jì)模式,方便理解,需要運(yùn)用一種建模設(shè)計(jì)語(yǔ)言----UML.
UML(UML:Unified Modeling Language),即統(tǒng)一建模語(yǔ)言,用來(lái)對(duì)軟件密集系統(tǒng)進(jìn)行描述、構(gòu)造、視化和文檔編制的一種語(yǔ)言.這是概念,不好理解.
UML的作用,打個(gè)比方:一段描寫(xiě)迷人海灘風(fēng)景的文字和一幅描繪海灘風(fēng)景的油畫(huà),去看這兩件東西的人,有的人可能能讀懂文字(可能是特定的語(yǔ)言),有的不認(rèn)字,所以并不是所有的人能看懂文字表達(dá)的內(nèi)容,但是所有的人都能讀懂油畫(huà)所表現(xiàn)出來(lái)的含義.油畫(huà)表達(dá)內(nèi)容的直接,形象,豐富特性就類(lèi)型UML在描敘軟件結(jié)構(gòu)過(guò)程中的作用.
在軟件項(xiàng)目中,一般有幾個(gè)角色:用戶(User),架構(gòu)設(shè)計(jì)師(orPM, SA),程序員(PG)
用戶:
也許不懂計(jì)算機(jī),也不懂編程語(yǔ)言,但是懂行業(yè)業(yè)務(wù),該軟件的功能需求.
程序員
懂計(jì)算技術(shù),懂編程語(yǔ)言.但是不太了解行業(yè)邏輯.需要把客戶的業(yè)務(wù)應(yīng)用需求轉(zhuǎn)變?yōu)槌绦虼a,
架構(gòu)設(shè)計(jì)師
資深的行業(yè)架構(gòu)設(shè)計(jì)師應(yīng)該具有一定的行業(yè)知識(shí),既能聽(tīng)懂客戶的業(yè)務(wù)需求,又能知道怎么告訴程序員去用代碼實(shí)現(xiàn).
架構(gòu)設(shè)計(jì)師在前兩者交流中起到承前啟后的"中間體"作用.UML就是采用圖形化的形式來(lái)表達(dá)架構(gòu)和設(shè)計(jì).成為了建模設(shè)計(jì)的通用的設(shè)計(jì)標(biāo)準(zhǔn)..

UML圖讓信息交流變得簡(jiǎn)單
[UML基礎(chǔ)]
此處只介紹幫助理解設(shè)計(jì)模式的UML基礎(chǔ),具體其他的UML圖示需要參考具體的講解UML的書(shū)籍.
1.類(lèi)的層級(jí)關(guān)系
UML中的類(lèi)圖是一種可表示一組類(lèi),對(duì)象實(shí)例和接口之間的靜態(tài)關(guān)系圖.
如圖的UML類(lèi)圖表達(dá)了上面代碼的含義,
類(lèi)之間的關(guān)系有四種:依賴,泛化,實(shí)現(xiàn)聚集,組成.具體的UML實(shí)例可以參UML基礎(chǔ).
2.接口和實(shí)現(xiàn)
實(shí)現(xiàn)接口的UML示例如下:
interface Printable {
abstract void print();
}
public class PrintClass implements Printable {
public void print() {
// how to print
}
}
接口,抽象,實(shí)現(xiàn),繼承在設(shè)計(jì)模式中被廣泛的使用,這也是OOD的優(yōu)勢(shì)所在.美妙所在.
這里只舉出了幾個(gè)簡(jiǎn)單情形,讓大家有個(gè)感性的了解,具體的情形在說(shuō)具體的設(shè)計(jì)模式的時(shí)候在針對(duì)性的說(shuō)明,先不用弄那么多,那么雜,能開(kāi)始下一步就足夠.
類(lèi)之間的關(guān)系
類(lèi)之間的關(guān)系有5種,
關(guān)聯(lián) 依賴 聚集 泛化 實(shí)現(xiàn)