序言:設計模式是一種編碼經(jīng)驗铲球,設計模式有MVC模式沟优,工廠模式,單例模式睬辐,委托模式,MVVM模式宾肺,觀察者模式溯饵。iOS基本上所有的開發(fā)都離不開這幾種設計模式,以下我就來說說我的理解吧锨用,請多多指教丰刊。
一、MVC模式
MVC想必大家對他都不陌生增拥,iOS主流的設計模式啄巧,其余的設計模式都是基于MVC衍生的設計模式寻歧。
M:Model (模型)主要的作用是應用程序中處于處理應用程序數(shù)據(jù)邏輯的部分,籠統(tǒng)來說就是邏輯處理秩仆。一般來說model對象負責在數(shù)據(jù)庫中存取數(shù)據(jù)码泛。
V:VIew(視圖)主要的作用是應用程序中的數(shù)據(jù)顯示的部分,根據(jù)model數(shù)據(jù)創(chuàng)建的澄耍,顧名思義噪珊,就是視圖。
C:Controller(控制器)主要的作用是應用程序與用戶的交互的處理齐莲,控制器從視圖中讀取用戶數(shù)據(jù)痢站,并控制用戶操作,最后向model發(fā)送數(shù)據(jù)选酗。
MVC模式有助于降低耦合阵难,可以分開來開發(fā),在一段時間內(nèi)可以專注于其中一項來開發(fā)而不會有多大的影響,讓不同的開發(fā)人員同時開發(fā)視圖、控制器邏輯與業(yè)務邏輯遇绞。ps:業(yè)務邏輯就是處理數(shù)據(jù)的邏輯蚜锨。
二、單例模式
利用static關鍵詞易遣,聲明一個全局變量,在整個進程運行過程中只會運行一次。
單例模式三個要點:一個類只能有一個實例椎工;必須是自行創(chuàng)建的這個類;自行向整個系統(tǒng)提供這個實例蜀踏。
三维蒙、委托模式
主要實現(xiàn)的是代理與協(xié)議的組合,可以實現(xiàn)反向傳值操作果覆。
四颅痊、工廠模式
通過一個類方法,批量的根據(jù)已有模版生產(chǎn)對象局待,所利用的是oc語言的多態(tài)來創(chuàng)建不同的對象斑响。
五、觀察者模式
最典型的就是KVO模式的通知模式钳榨,觀察某個屬性的狀態(tài)舰罚,狀態(tài)發(fā)生變化時通知觀察者,再執(zhí)行相應的事件薛耻。
六营罢、MVVM模式
就是基于MVC模式,在其上再加上一個新的view-model饼齿。這個設計模式就是把view里面的業(yè)務邏輯分出來另外處理饲漾,分成兩部分蝙搔,一個是基本的UI界面設計,一個是業(yè)務邏輯考传,最終所達成的目的就是解耦合吃型。
以上就是本人對iOS基本設計模式的理解,當然也查閱過各種資料添加上自己的理解伙菊,若有不妥望評論指出來败玉。