天天看點

包建強的教育訓練課程(8):iOS與設計模式

課程名稱: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講

建立型設計模式(一)

簡單工廠

l   定義及UML圖、通用代碼實作

l   iOS中的使用場景:ViewController的viewDidLoad方法

l   iOS中的一個例子:檔案存儲

工廠模式

l   簡單工廠與工廠的微小差別

l   iOS中的使用場景:兩步對象建立法

l   反射與工廠模式的配合

第一天 下午

第1講

建立型設計模式(二)

單例模式

l   多例

l   iOS的内部支援:UIApplication和UIAccelerometer

l   iOS中的使用場景:單例宏

原型模式

l   淺拷貝和深拷貝

l   NSCoping

l   NSCoding

l   App中的使用場景:再來一單

生成器模式

l   編寫一個例子:繪制笑臉

l   變體:Director的蛻化

構造型設計模式(一)

委托模式

l   神奇的delegate

l   委托模式的使用場合

擴充卡模式

l   類擴充卡和對象擴充卡

l   一個例子:變壓器

l   iOS中的内部支援:Delegate以及UITableView

l   使用Block實作擴充卡模式

橋接模式

l   兩個次元的簡單工廠

l   加法,還是乘法?

l   編寫一個例子:蠟筆與水彩筆

代理模式

l   靜态代理和動态代理

l   遠端代理

l   虛拟代理

l   保護代理

l   iOS中的内部支援:NSProxy

第二天 上午

構造型設計模式(二)

組合模式

l   溫習一下遞歸算法

l   實作的兩種方式

l   一個現實中的例子:山上有座廟

l   iOS中的内部支援:UIView的層級結構

享元模式

l   不變模式

l   享元是多例與不變模式的組合

l   自己編寫一個例子:圍棋

裝飾器模式

l   編寫一個例子:炒菜

l   給工廠增加新方法

l   使用Category來實作裝飾器模式

外觀模式

l   與單一職責設計原則的沖突

行為型設計模式(一)

職責鍊模式

l   寫一個例子:遊戲中的傷害計算

l   iOS中的内部支援:UIView中的事件處理和動作消息

模版方法模式

l   基于政策模式的排序算法

l   iOS中的内部支援:UIView的鈎子方法drawRect

指令模式

l   例子1:玉皇大帝派太上老君封孫悟空為齊天大聖

l   復原(undo)

l   在iOS中的應用:NSInvocation與NSUndoManager

備忘錄模式

l   復原機制的另一種實作

l   例子:單機遊戲的儲存和加載

l   寬窄接口:IMemento

第二天 下午

行為型設計模式(二)

疊代器模式

l   在iOS中的内部支援:NSEnumerator及延伸

政策模式

l   App中的應用:基于UITextView的驗證器

觀察者模式

l   例子:RSS

l   在iOS中的内部支援1:KVO

l   在iOS中的内部支援2:NSNotificationCenter

中介者模式

l   編寫一個例子:房産中介

l   在iOS中的應用:UIViewController中控件間通信

狀态模式

l   寫一個例子:空調遙控器

l   在App中的應用:使用者登入

總結回顧

回顧23個設計模式

設計模式沉思