iOS開發設計模式詳解 – iPhone手機開發 iPhone軟體開發教學課程

在軟件開發中一般認為有23種設計模式(design pattern),這是軟件開發中的較高的境界瞭。在iOS開發中最常用的有哪些設計模式呢?我們今天來分析一下:

一.【代理模式】

使用場景:當一個類的某些功能需要由別的類來實現,但是又不確定具體會是哪個類實現。其實就像是Java中的接口,類可以實現或者不實現協議(接口)中的方法。

優點:低耦合。

使用原則:開閉原則。

實例:TableView的UITableViewDataSource、UITableViewDelegate,通過和protocol的配合,完成代理。

 

二.【觀察者模式】

使用場景:一般是對model層進行觀察,Controller和View進行通知的方式,隻負責發送消息,不關系誰去接收。一個對象狀態改變,通知正在對他進行觀察的對象,這些對象根據各自的要求做出響應。

優點:低耦合。

使用原則:接口隔離原則,開閉原則。

實例:KVO鍵值觀察者。通知機制。

 

三.【MVC模式】

使用場景:整個iOS App系統架構就應該按照MVC模式。

優點:層次清晰、易於維護。

實例:model進行數據的存儲,View進行視圖的顯示和響應,controller是model和view之間的橋梁,進行邏輯控制。

 

四.【單例模式】

使用場景:確保程序運行時隻有一個實例,用於進行資源共享控制。

優點:邏輯簡單。

原則:單一職責。

實例:

(1)UIAccelerometer類和sharedAccelerometer方法,一般如果方法名中有shared這樣的詞,就可以認為這是一個可以整個應用程序共享的實例變量,一般是使用瞭單例。

(2)UIApplication類和sharedApplication方法,我們一般使用該方法來創建全局變量。

(3)NSBundle類和mainBundle方法。

(4)NSFileManager類和defaultManager方法。

(5)NSNotificationCenter類和defaultManager方法。其中NSNotificationCenter也實現瞭觀察者模式。

(6)NSUserDefaults類和defaultUser方法。

 

五.【策略模式】

使用場景:定義算法族,進行封裝,使他們之間可以相互替換。

優點:使算法的變化獨立於使用算法的用戶。

原則:針對接口編程,而不是針對實現編程。

實例:排序算法,NSArray的sortedArrayUsingSelector

 

六.【工廠模式】

使用場景:工廠方法創建類的實例,多於proxy模式配合,創建可替換代理類。

優點:易於替換,面向抽象編程,application隻和抽象工廠的共性抽象類發生調用關系。

原則:依賴倒置原則。

實例:項目部署環境中依賴多個不同類型的數據庫時,需要使用工廠配合proxy完成易用性替換。

 

總結,在實際的開發中,上述的模式用的最常見,如果以後用到其他的,我會繼續和大傢分享。

 

 

 

發佈留言