課程名稱:iOS與設計模式
一、 簡介
根據講師十多年奮戰在一線的實戰經驗,詳細剖析對設計模式的理解與實踐,尤其是結合最近幾年來在iOS領域的思考和研究。本課程系列講介紹GOF經典設計模式以及面向對象設計的5大原則,分析這些設計模式在iOS中的實際使用場景,并使用大量案例,在短短的幾堂課中,幫助學員迅速掌握學習設計模式的方法。
本課程讓學員掌握二十多個設計模式在Android中的使用場景,理解模式背后深層次的思想,更重要的是,學會如何學習一門新技術。
本課程對于開發以下App產品特別有幫助:
1、千萬級用戶的App產品。
2、業務功能繁多。
學習本課程應具備下列基礎知識:
1、1-2年iOS開發經驗。
2、對設計模式有一些了解或接觸。
二、 培訓大綱(2天)
第一天 上午
第1講 SOLID五大原則及UML圖繪制
1. 單一性原則
l 一個類只干一件事情
l 從ViewController中剝離UITableView
2. 開閉原則
l 對擴展開放,對修改封閉
l 從switch-case談起
3. 里氏替換原則
l 父類,子類?
l 對多態的重新認識
l 白馬與馬
4. 依賴倒置原則
l 依賴于抽象,而不是依賴于具體
l 模版方法
l 從WebService到JSON
5. 接口隔離原則
l 類之間的依賴,建立于最小粒度的接口
l 看人下菜碟
l 寬窄接口
6. 迪米特法則
l 不要和陌生人說話
7. UML圖繪制
l 接口、類
l 類的關系(關聯、依賴、聚合、組合)
8. 總結
l 組合,還是繼承?
l 可插拔技術
l 面向接口編程
第2講 創建型設計模式(一)
1. 簡單工廠
l 定義及UML圖、通用代碼實現
l iOS中的使用場景:ViewController的viewDidLoad方法
l iOS中的一個例子:文件存儲
2. 工廠模式
l 定義及UML圖、通用代碼實現
l 簡單工廠與工廠的微小區別
l iOS中的使用場景:兩步對象創建法
l 反射與工廠模式的配合
第一天 下午
第1講 創建型設計模式(二)
1. 單例模式
l 定義及UML圖、通用代碼實現
l 多例
l iOS的內部支持:UIApplication和UIAccelerometer
l iOS中的使用場景:單例宏
3. 原型模式
l 定義及UML圖、通用代碼實現
l 淺拷貝和深拷貝
l NSCoping
l NSCoding
l App中的使用場景:再來一單
4. 生成器模式
l 定義及UML圖、通用代碼實現
l 編寫一個例子:繪制笑臉
l 變體:Director的蛻化
第2講 構造型設計模式(一)
1. 委托模式
l 神奇的delegate
l 委托模式的使用場合
2. 適配器模式
l 定義及UML圖、通用代碼實現
l 類適配器和對象適配器
l 一個例子:變壓器
l iOS中的內部支持:Delegate以及UITableView
l 使用Block實現適配器模式
3. 橋接模式
l 定義及UML圖、通用代碼實現
l 兩個維度的簡單工廠
l 加法,還是乘法?
l 編寫一個例子:蠟筆與水彩筆
4. 代理模式
l 定義及UML圖、通用代碼實現
l 靜態代理和動態代理
l 遠程代理
l 虛擬代理
l 保護代理
l iOS中的內部支持:NSProxy
第二天 上午
第1講 構造型設計模式(二)
1. 組合模式
l 溫習一下遞歸算法
l 定義及UML圖、通用代碼實現
l 實現的兩種方式
l 一個現實中的例子:山上有座廟
l iOS中的內部支持:UIView的層級結構
2. 享元模式
l 定義及UML圖、通用代碼實現
l 不變模式
l 享元是多例與不變模式的組合
l 自己編寫一個例子:圍棋
3. 裝飾器模式
l 定義及UML圖、通用代碼實現
l 編寫一個例子:炒菜
l 給工廠增加新方法
l 使用Category來實現裝飾器模式
4. 外觀模式
l 定義及UML圖、通用代碼實現
l 與單一職責設計原則的沖突
第2講 行為型設計模式(一)
1. 職責鏈模式
l 定義及UML圖、通用代碼實現
l 寫一個例子:游戲中的傷害計算
l iOS中的內部支持:UIView中的事件處理和動作消息
2. 模版方法模式
l 定義及UML圖、通用代碼實現
l 基于策略模式的排序算法
l iOS中的內部支持:UIView的鉤子方法drawRect
3. 命令模式
l 定義及UML圖、通用代碼實現
l 例子1:玉皇大帝派太上老君封孫悟空為齊天大圣
l 回滾(undo)
l 在iOS中的應用:NSInvocation與NSUndoManager
4. 備忘錄模式
l 定義及UML圖、通用代碼實現
l 回滾機制的另一種實現
l 例子:單機游戲的保存和加載
l 寬窄接口:IMemento
第二天 下午
第1講 行為型設計模式(二)
1. 迭代器模式
l 定義及UML圖、通用代碼實現
l 在iOS中的內部支持:NSEnumerator及延伸
2. 策略模式
l 定義及UML圖、通用代碼實現
l App中的應用:基于UITextView的驗證器
3. 觀察者模式
l 定義及UML圖、通用代碼實現
l 例子:RSS
l 在iOS中的內部支持1:KVO
l 在iOS中的內部支持2:NSNotificationCenter
4. 中介者模式
l 定義及UML圖、通用代碼實現
l 編寫一個例子:房產中介
l 在iOS中的應用:UIViewController中控件間通信
5. 狀態模式
l 定義及UML圖、通用代碼實現
l 寫一個例子:空調遙控器
l 在App中的應用:用戶登錄
第2講 總結回顧
1. 回顧23個設計模式
2. 設計模式沉思
文章列表