這里呢 主要向大家介紹一下三種設(shè)計(jì)模式中幾種常見(jiàn)的設(shè)計(jì)模式
設(shè)計(jì)模式大概分為三大類(lèi):
一. 創(chuàng)建型: 單例設(shè)計(jì)模式 抽象工廠(chǎng)設(shè)計(jì)模式
二. 結(jié)構(gòu)型: MVC設(shè)計(jì)模式 裝飾器模式 適配器模式 外觀(guān)模式 組合模式
三. 行為型: 責(zé)任鏈設(shè)計(jì)模式 觀(guān)察者設(shè)計(jì)模式 備忘錄設(shè)計(jì)模式 命令設(shè)計(jì)模式
接下來(lái)我們就按照順序來(lái)仔細(xì)的介紹一下以上各種設(shè)計(jì)模式
單例設(shè)計(jì)模式
(1) 概念: 單例設(shè)計(jì)模式確保對(duì)于一個(gè)給定的類(lèi)只有一個(gè)實(shí)例存在 這個(gè)實(shí)例有一個(gè)全局唯一的訪(fǎng)問(wèn)點(diǎn) 它通常使用延遲加載的方式在第一次用到實(shí)例的時(shí)候再去創(chuàng)建它
(2) 實(shí)例: 蘋(píng)果大量的使用了單例設(shè)計(jì)模式 例如: [NSUserDefaults standardUserDefaults] [UIApplication sharedApplication] [UIScreen mainScreen] [NSFileManager defaultManager]; 這些系統(tǒng)的方法都返回了一個(gè)單例對(duì)象
(3) 優(yōu)點(diǎn): 使用簡(jiǎn)單 延時(shí)求值 易于跨模塊 由于在系統(tǒng)中只存在一個(gè)對(duì)象 因此可以節(jié)約系統(tǒng)資源 對(duì)于一些需要頻繁創(chuàng)建和銷(xiāo)毀的對(duì)象單例模式可以提高系統(tǒng)的性能 允許可變數(shù)目的實(shí)例
(4) 缺點(diǎn): 由于單例模式中沒(méi)有抽象層 因此單例類(lèi)的擴(kuò)展有很大困難 單例類(lèi)的指責(zé)過(guò)重 在一定程度上違背了'單一職責(zé)原則' 濫用單例會(huì)帶來(lái)一些負(fù)面的問(wèn)題 (例如 為了節(jié)省資源將數(shù)據(jù)庫(kù)連接池對(duì)象設(shè)計(jì)為單例類(lèi) 可能會(huì)導(dǎo)致共享連接池對(duì)象的程序過(guò)多而出現(xiàn)連接池溢出 如果實(shí)例化的對(duì)象長(zhǎng)時(shí)間不被利用 系統(tǒng)會(huì)認(rèn)為是垃圾被回收 這將導(dǎo)致對(duì)象狀態(tài)的丟失)抽象工廠(chǎng)設(shè)計(jì)模式
To Be Continued...