當(dāng)下IOS開發(fā)的過程中恤溶,常用的設(shè)計模式有:單例模式乓诽、委托模式、觀察者模式和MVC模式咒程;
一问裕、單例模式
我們平時常用的UIApplication 、 NSUserdefaults 孵坚、 NSNotificationCenter這些類都是單例粮宛。單例模式的作用是解決應(yīng)用中只有一個實例的一類問題;
1卖宠、UIApplication,這個實例代表了整個應(yīng)用程序?qū)ο笪¤荆荒苁且粋€實例,來實現(xiàn)應(yīng)用程序中一些共享資源的訪問和狀態(tài)保持等等扛伍。例如:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://110"]];來調(diào)用系統(tǒng)撥打110筷畦;
2、NSUserdefaults 刺洒,這個實例可以方便的保存應(yīng)用程序的一些設(shè)置鳖宾,持久化保存一些需要的數(shù)據(jù),[[NSUserDefaults standardUserDefaults] setObject:@"張三"forKey:@"name"];
3逆航、NSNotificationCenter鼎文, 這個實例指的是通知中心,發(fā)出通知因俐,并可以傳遞數(shù)據(jù)拇惋;
二、委托模式
委托模式是為了降低一個對象的復(fù)雜程度和耦合度抹剩,使其能夠更具有通用性而將其中的一些處理至于委托對象中的編碼方式撑帖。就是指定代理協(xié)議,將一些“事件”“委托給”遵循了協(xié)議代理的別的類進(jìn)行處理澳眷;
三胡嘿、觀察者模式
觀察著模式也可以叫做:訂閱模式 或 發(fā)布模式,類似于我們現(xiàn)在訂閱微信公眾號钳踊;觀察者模式的具體應(yīng)用有兩個:通知機(jī)制(Notification)和 KVO機(jī)制 (key-value-observing).
1衷敌、通知機(jī)制:投送者發(fā)出通知-->通知中心,然后通知中心-->一個或多個接受者箍土,最后由接受者將解除通知的指令-->通知中心逢享;其中罐监,要注意的是:接收者注冊的通知name必須與投送者注冊的通知name相同吴藻。?
通知機(jī)制可以讓我們很方便的監(jiān)聽某些事件的發(fā)生,并可以傳遞一些需要的值弓柱;
2沟堡、KVO模式侧但。
四、MVC模式
Model 航罗,指的是數(shù)據(jù)類型禀横,通常用來處理業(yè)務(wù)邏輯,將數(shù)據(jù)傳輸給控制器粥血。
View 柏锄,指的是視圖,通過控制器傳來的數(shù)據(jù)進(jìn)行數(shù)據(jù)更新展示信息界面复亏。
Controller 趾娃,即控制器,接收用戶請求缔御,根據(jù)請求更新模型抬闷,繼而更新視圖來響應(yīng)用戶請求,是控制器視圖和模型的媒介耕突,可以降低視圖和數(shù)據(jù)模型的耦合度
如下圖: