结盟众多企业“教练”, 共同设计、开发及提供人才培养解决方案,通过新颖多样的学习方式,针对性的定制化内容,助力企业全面提升竞争优势。
包建强
3天
6000元
一、 简介
根据讲师十多年奋战在一线的实战经验,详细剖析对设计模式的理解与实践,尤其是结合最近几年来在iOS领域的思考和研究。本课程系列讲介绍GOF经典设计模式以及面向对象设计的5大原则,分析这些设计模式在iOS中的实际使用场景,并使用大量案例,在短短的几堂课中,帮助学员迅速掌握学习设计模式的方法。
本课程对于开发以下App产品特别有帮助:
1、千万级用户的App产品。
2、业务功能繁多。
学习本课程应具备下列基础知识:
1、1-2年iOS开发经验。
2、对设计模式有一些了解或接触。
| 主题 | 内容 | 
|---|---|
| 第1天 上午 讲SOLID五大原则 | 
                        
                            
                                1.	单一性原则  一个类只干一件事情  从ViewController中剥离UITableView 2. 开闭原则  对扩展开放,对修改封闭  从switch-case谈起 3. 里氏替换原则  父类,子类?  对多态的重新认识  白马与马 4. 依赖倒置原则  依赖于抽象,而不是依赖于具体  模版方法  从WebService到JSON 5. 接口隔离原则  类之间的依赖,建立于最小粒度的接口  看人下菜碟  宽窄接口 6. 迪米特法则  不要和陌生人说话 7. UML图绘制  接口、类  类的关系(关联、依赖、聚合、组合) 8. 总结  组合,还是继承?  可插拔技术  面向接口编程  | 
                 
            
        
| 第1天 下午 创建型设计模式 | 
                        
                            
                                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.	委托模式  神奇的delegate  委托模式的使用场合 2. 适配器模式  定义及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.	职责链模式  定义及UML图、通用代码实现  写一个例子:游戏中的伤害计算  iOS中的内部支持:UIView中的事件处理和动作消息 2. 模版方法模式  定义及UML图、通用代码实现  基于策略模式的排序算法  iOS中的内部支持:UIView的钩子方法drawRect 3. 命令模式  定义及UML图、通用代码实现  例子1:玉皇大帝派太上老君封孙悟空为齐天大圣  回滚(undo)  在iOS中的应用:NSInvocation与NSUndoManager 4. 备忘录模式  定义及UML图、通用代码实现  回滚机制的另一种实现  例子:单机游戏的保存和加载  宽窄接口:IMemento  | 
                 
            
        
| 第3天 下午 行为型设计模式(二) | 
                        
                            
                                1.	迭代器模式  定义及UML图、通用代码实现  在iOS中的内部支持:NSEnumerator及延伸 2. 策略模式  定义及UML图、通用代码实现  App中的应用:基于UITextView的验证器 3. 观察者模式  定义及UML图、通用代码实现  例子:RSS  在iOS中的内部支持1:KVO  在iOS中的内部支持2:NSNotificationCenter 4. 中介者模式  定义及UML图、通用代码实现  编写一个例子:房产中介  在iOS中的应用:UIViewController中控件间通信 5. 状态模式  定义及UML图、通用代码实现  写一个例子:空调遥控器  在App中的应用:用户登录  |