首页 > 代码库 > 包建强的培训课程(2):Android与设计模式
包建强的培训课程(2):Android与设计模式
一、 简介
本课程根据讲师十多年的一线工作经验,涉足.NET、Android、iOS等多个技术领域,对设计模式有独到的理解。不拘泥于传统的书本教程,结合Android在实际项目中的运用,帮助学员深刻理解设计模式。
本课程让学员掌握二十多个设计模式在Android中的使用场景,理解模式背后深层次的思想,更重要的是,学会如何学习一门新技术。
本课程对于开发以下App产品特别有帮助:
1、千万级用户的App产品。
2、业务功能繁多。
本课程适用于具有以下特征的学员:
1、1-2年Android开发经验。
2、对设计模式有一些了解或接触。
二、 培训大纲(3天)
第1天上午 讲SOLID五大原则及UML图绘制
1. 单一性原则
l 一个类只干一件事情
l 从Activity中剥离Adapter
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 可插拔技术
l 面向接口编程
第1天下午 创建型设计模式
1. 简单工厂
l 定义及UML图、通用代码实现
l Android中的使用场景:Activity的onCreate方法
l Android中的一个例子:文件存储
2. 工厂模式
l 定义及UML图、通用代码实现
l 简单工厂与工厂的微小区别
l 反射与工厂模式的配合
3. 抽象工厂模式
l 定义及UML图、通用代码实现
l 与工厂模式的区别
l 文件存储的抽象工厂实现
4. 单例模式
l 定义及UML图、通用代码实现
l 多例
l Android中的使用场景:ImageLoader
5. 原型模式
l 定义及UML图、通用代码实现
l 浅拷贝和深拷贝
l 一个例子:孙悟空的分身
l Android中的使用场景:Intent
6. 生成器模式
l 定义及UML图、通用代码实现
l 编写一个例子:绘制笑脸
l 变体:Director的蜕化
l Android中的使用场景:AlertDialog
第2天上午 构造型设计模式(一)
1. 适配器模式
l 定义及UML图、通用代码实现
l 类适配器和对象适配器
l 一个例子:变压器
l Android中的使用场景:Adapter
2. 桥接模式
l 定义及UML图、通用代码实现
l 两个维度的简单工厂
l 加法,还是乘法?
l 编写一个例子:蜡笔与水彩笔
3. 代理模式
l 定义及UML图、通用代码实现
l 在Android中的实现:Binder与AIDL
l 静态代理和动态代理
l 远程代理
l 虚拟代理
l 保护代理
l 智能引用
第2天下午 构造型设计模式(二)
1. 组合模式
l 温习一下递归算法
l 定义及UML图、通用代码实现
l 实现的两种方式
l 一个现实中的例子:山上有座庙
l Android中的使用场景:View和ViewGroup
2. 享元模式
l 定义及UML图、通用代码实现
l 不变模式
l 享元是多例与不变模式的组合
l 自己编写一个例子:围棋
l Android中的使用场景:String
3. 装饰器模式
l 定义及UML图、通用代码实现
l 编写一个例子:炒菜
l 给工厂增加新方法
l Android中的使用场景:ContextWrapper
4. 外观模式
l 定义及UML图、通用代码实现
l 与单一职责设计原则的冲突
l Android中的使用场景:Context
第3天上午 行为型设计模式(一)
1. 职责链模式
l 定义及UML图、通用代码实现
l 写一个例子:游戏中的伤害计算
l 事件分发机制
2. 模版方法模式
l 定义及UML图、通用代码实现
l 在Android中的应用1:AsyncTask
l 在Android中的应用2:Activity的生命周期函数
3. 命令模式
l 定义及UML图、通用代码实现
l 例子1:玉皇大帝派太上老君封孙悟空为齐天大圣
l 回滚(undo)
l 在Android中的应用:AAPT
4. 备忘录模式
l 定义及UML图、通用代码实现
l 回滚机制的另一种实现
l 例子:单机游戏的保存和加载
l 宽窄接口:IMemento
l 在Android中的应用:onSaveInstanceState
第3天下午 行为型设计模式(二)
1. 迭代器模式
l 定义及UML图、通用代码实现
l 外部迭代器和内部迭代器
l 在Android中的内部支持:Cursor
2. 策略模式
l 定义及UML图、通用代码实现
l 基于策略模式的排序算法
l 在Android中的应用:Comparator
3. 观察者模式
l 定义及UML图、通用代码实现
l 例子:RSS
l 在Android中的应用1:Adapter的notifyDataSetChanged方法
l 在Android中的应用2:BroadcastReceiver
l 在Android中的应用3:事件总线EventBus
4. 中介者模式
l 定义及UML图、通用代码实现
l 编写一个例子:房产中介
l 在Android中的应用:Activity中控件间通信
5. 状态模式
l 定义及UML图、通用代码实现
l 写一个例子:空调遥控器
l Android中的应用:View的onVisibilityChanged方
l 在App中的应用:用户登录
<style type="text/css" isprelink="true">@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);</style><style type="text/css">@import url(/css/cuteeditor.css);</style>
包建强的培训课程(2):Android与设计模式