iOS設計模式簡單說明

設計模式是一些非常抽象的概念,單從字面理解起來比較困難,所以對每個設計模式寫了些說明/例子來方便理解。
由于本人才疏學淺,所以有些地方我會結合iOS開發中的一些實例來說明,如有不完善/錯誤的地方,請各位大佬諒解,也歡迎各位大佬指正。謝謝!

  • 代理模式 Porxy

UITableViewDelegate
我是一個委托人,我可以有一個代理人,幫我完成一些任務,我不需要關心誰是我的代理人,只要他們完成我的任務

  • 單例模式 Singleton

SharedApplication
這個世界上現在只有一個你,不會出現第二個你

  • 觀察者模式 Observer

Observer/Notification
你打開(注冊)App的通知,就成為了App消息(被觀察者)的(觀察者),當有新消息時,你就會受到推送(通知),沒有打開的就不會受到通知

  • 責任鏈模式 Chain

一系列待響應者按照順序進行響應,直到有響應者為止
iOS事件傳遞機制,SubSubView->Subview->View

  • 門面/外觀模式 Faced

組合封裝
將零件組裝成汽車,將低級方法封裝成更高級的方法

  • 迭代器模式 Interator

數據庫查詢結果中next()
公司組織無償獻血,護士只需要按順序給每個人抽血就可以,不需要關心公司的組織架構是什么樣

  • 原型模式 Prototype

copy方法
你有一份調查報告是通過各種調研得來的,同事有個任務也需要你的報告,你通過復?。╟opy)給他一份,讓他也可以擁有一份

  • 裝飾器模式 Decorator

Extension/Catagory 拓展
一個人拿上掃帚可以打掃衛生,拿上拖把可以拖地,同事拿上掃帚和拖把,又可以掃地,又可以拖地

  • 享元模式 Flyweight

UITableView重用機制
把對象放入重用池,需要的時候優先從重用池中取,重用池中沒有時,才會新建

  • 解釋器模式 Interpreter

對正則表達式、SQL語句等String進行解釋

  • 適配器模式 Adapter

對接口適配

  • 狀態模式 State

根據不同狀態有不同的行為
錯誤展示頁根據不同的錯誤顯示不用的頁面

  • 中介者模式 Mediator

解耦,通過中介實現不同類/模塊之間的通信
MGJRouter、CTMediator等三方庫

  • 橋接模式 Bridge

抽象與實現解耦,可以獨立進行變化

  • 策略模式 Strategy

執行方法在運行時進行更改,指定不同策略,執行不同方法

  • 組合模式 Composite

部分-整體樹形結構,對部分和整體的調用保持一致

  • 訪問者模式 Visitor

父類相同的子類具有同名的父類方法,在運行時根據調用對象不同來執行不同方法


  • 備忘錄模式 Memento

狀態存檔
以便于撤銷/重做

  • 命令模式 Command

通過發布命令來調用
將一次操作作為一個請求進行保存,以便于撤銷/重做


  • 工廠模式 Factory

不調用new來新建復雜對象,而是通過工廠
一個饅頭廠可以生產饅頭

  • 抽象工廠模式 Abstract Factory

一個面食廠可以生產饅頭,也可以生產面包


  • 模板方法模式 Template

流程確定,可以重寫方法

  • 建造者模式 Builder

方法確定,流程自由組合


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。