iOS与设计模式
浏览:3776次
详情 DETAILS

简介

根据讲师十多年的一线工作经验,涉足.NET、Android、iOS等多个技术领域,对设计模式有独到的理解。不拘泥于传统的书本教程,结合iOS在实际项目中的运用,帮助学员深刻理解设计模式。

关键词 1、工厂 2、单例 3、适配器 4、代理 5、模版方法

课程时长

3天(18H)

受众人群

该培训对于开发以下App产品特别有帮助:

1、千万级用户的App产品。

2、业务功能繁多。

学习本课程应具备下列基础知识:

1、1-2年iOS开发经验。

2、对设计模式有一些了解或接触。

分享提纲


主题授课内容
第1天引子(破冰)从海盗分金子谈起

第1单元

SOLID(上午)

该单元介绍SOLID五大设计原则


1. 单一性原则

一个类只干一件事情

从ViewController中剥离UITableView

2. 开闭原则

对扩展开放,对修改封闭

从switch-case谈起

3. 里氏替换原则

父类,子类?

对多态的重新认识

白马与马

4. 依赖倒置原则

依赖于抽象,而不是依赖于具体

模版方法

从WebService到JSON

5. 接口隔离原则

类之间的依赖,建立于最小粒度的接口

看人下菜碟

宽窄接口

6. 迪米特法则

不要和陌生人说话

7. 总结

组合,还是继承?

可插拔技术

面向接口编程


第2单元

创建型设计模式(下午)

该单元介绍创建型设计模式


1. 简单工厂

定义及UML图、通用代码实现

iOS中的使用场景:ViewController的viewDidLoad方法

iOS中的一个例子:文件存储

2. 工厂模式

定义及UML图、通用代码实现

简单工厂与工厂的微小区别

iOS中的使用场景:两步对象创建法

反射与工厂模式的配合

3. 抽象工厂模式

定义及UML图、通用代码实现

与工厂模式的区别

文件存储的抽象工厂实现

4. 单例模式

定义及UML图、通用代码实现

多例

iOS的内部支持:UIApplication和UIAccelerometer

iOS中的使用场景:单例宏

5. 原型模式

定义及UML图、通用代码实现

浅拷贝和深拷贝

NSCoping

NSCoding

App中的使用场景:再来一单

6. 生成器模式

定义及UML图、通用代码实现

编写一个例子:绘制笑脸

变体:Director的蜕化


第2天引子(破冰)从大象背香蕉谈起

第1单元

结构型设计模式(上午)

该单元介绍结构型设计模式


1. 委托模式

神奇的delegate

委托模式的使用场合

2. 适配器模式

l 定义及UML图、通用代码实现

类适配器和对象适配器

一个例子:变压器

iOS中的内部支持:Delegate以及UITableView

a) 使用Block实现适配器模式

3. 桥接模式

定义及UML图、通用代码实现

两个维度的简单工厂

加法,还是乘法?

编写一个例子:蜡笔与水彩笔

4. 代理模式

定义及UML图、通用代码实现

静态代理和动态代理

远程代理

虚拟代理

保护代理

iOS中的内部支持:NSProxy


第2单元

结构型设计模式(上午)

该单元介绍结构型设计模式


1. 组合模式

温习一下递归算法

定义及UML图、通用代码实现

实现的两种方式

一个现实中的例子:山上有座庙

iOS中的内部支持:UIView的层级结构

2. 享元模式

定义及UML图、通用代码实现

不变模式

享元是多例与不变模式的组合

自己编写一个例子:围棋

3. 装饰器模式

定义及UML图、通用代码实现

编写一个例子:炒菜

给工厂增加新方法

使用Category来实现装饰器模式

4. 外观模式

定义及UML图、通用代码实现

与单一职责设计原则的冲突


第3天

第1单元

行为型设计模式(上午)

该单元介绍行为型设计模式


1. 职责链模式

定义及UML图、通用代码实现

写一个例子:游戏中的伤害计算

iOS中的内部支持:UIView中的事件处理和动作消息

2. 模版方法模式

定义及UML图、通用代码实现

基于策略模式的排序算法

iOS中的内部支持:UIView的钩子方法drawRect

3. 命令模式

定义及UML图、通用代码实现

例子1:玉皇大帝派太上老君封孙悟空为齐天大圣

回滚(undo)

在iOS中的应用:NSInvocation与NSUndoManager

4. 备忘录模式

定义及UML图、通用代码实现

回滚机制的另一种实现

例子:单机游戏的保存和加载

宽窄接口:IMemento


第2单元

行为型设计模式(上午)

该单元介绍行为型设计模式


1. 迭代器模式

定义及UML图、通用代码实现

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

2. 策略模式

定义及UML图、通用代码实现

App中的应用:基于UITextView的验证器

3. 观察者模式

定义及UML图、通用代码实现

例子:RSS

在iOS中的内部支持1:KVO

在iOS中的内部支持2:NSNotificationCenter

4. 中介者模式

定义及UML图、通用代码实现

编写一个例子:房产中介

在iOS中的应用:UIViewController中控件间通信

5. 状态模式

定义及UML图、通用代码实现

写一个例子:空调遥控器

在App中的应用:用户登录


企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1