轉(zhuǎn)載請(qǐng)注明出處:vicentz
1.前言
上篇文章已經(jīng)說(shuō)明了咱們要開(kāi)始學(xué)習(xí)設(shè)計(jì)模式晶府,我參考的書(shū)籍是《大話設(shè)計(jì)模式》路鹰,這本書(shū)以故事線為主線矾飞,帶領(lǐng)讀者層層深入枚冗,很適合自學(xué)的讀者(憑心論姓建,非廣告/(ㄒoㄒ)/~~)诞仓。但是學(xué)習(xí)之前,我們要能簡(jiǎn)單的識(shí)別常見(jiàn)的UML圖速兔,對(duì)面向?qū)ο笥袀€(gè)大概的了解墅拭,這篇文章主要就是介紹這個(gè)的。
2.正文
廢話不多說(shuō)涣狗,我們直入主題:
我相信大家大部分人都用的是面向?qū)ο笳Z(yǔ)言吧谍婉,所以對(duì)于這個(gè)面向?qū)ο髴?yīng)該都很了解了(封裝舒憾,繼承,多態(tài))穗熬,我們這里不講面向?qū)ο蠖朴兀恢v基于面向?qū)ο蠼鉀Q辦法的輔助工具UML圖,一個(gè)良好結(jié)構(gòu)的UML圖不僅能幫助我們快速分析問(wèn)題唤蔗,還能在于后期維護(hù)時(shí)候提供有效的幫助探遵,所以本人也十分建議在日常工作前,能草擬一個(gè)UML圖來(lái)幫助我們分析對(duì)象之間的關(guān)系措译。
2.1.類圖
首先别凤,最先介紹的就是類圖了,它包包含了類的名字领虹,屬性和方法规哪。
2.2.接口
接口就是預(yù)定義了一個(gè)實(shí)現(xiàn)該接口的類需要滿足的條件,一般只是指方法塌衰。
2.3.繼承
繼承就是子類繼承了父類的所有屬性和方法诉稍,方便擴(kuò)展。
2.4.依賴
依賴關(guān)系最弱最疆,對(duì)象A作為對(duì)象B的某一個(gè)行為的參數(shù)傳入杯巨,可有可無(wú),沒(méi)有的話頂多就不產(chǎn)生這個(gè)行為努酸,或者對(duì)行為產(chǎn)生不同的結(jié)果而已服爷。
2.5.關(guān)聯(lián)
關(guān)聯(lián)就是一個(gè)類要知道另一個(gè)類這種情況,可以是私有的屬性获诈,耦合關(guān)系弱仍源。
2.6.聚合
是一種弱擁有關(guān)系,A對(duì)象包含B對(duì)象舔涎,但是B對(duì)象可以不是A的一部分笼踩。
2.7.合成
是一種強(qiáng)擁有關(guān)系,嚴(yán)格的整體與部分關(guān)系亡嫌,部分和整體的生命周期一致嚎于。
好了,到這里我們已經(jīng)把所有的對(duì)象間的關(guān)系和UML圖展示給大家了挟冠,大家有沒(méi)有覺(jué)得爽爆了的感覺(jué)于购,又沒(méi)有覺(jué)得其實(shí)面向?qū)ο蟛](méi)有那么難,所有的大問(wèn)題都能拆分成小問(wèn)題圃郊,小問(wèn)題再拆分更小的問(wèn)題价涝,至于如何拆分與結(jié)合才是我們真正要探索的,慢慢來(lái)持舆,量變終究會(huì)質(zhì)變的色瘩。
對(duì)于對(duì)象間關(guān)系我也用OC寫了一個(gè)Demo,20161127_Demo_Object Oriented供大家參考伪窖。
轉(zhuǎn)載請(qǐng)注明出處:www.vicentz.cn