iOS開發設計模式詳解

來源:互聯網
上載者:User

iOS開發設計模式詳解

在軟體開發中一般認為有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

 

六.【原廠模式】

使用情境:Factory 方法建立類的執行個體,多於proxy模式配合,建立可替換代理類。

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

原則:依賴倒置原則。

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

 

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

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.