根据讲师十多年奋战在一线的实战经验,详细剖析对设计模式的理解与实践,尤其是结合最近几年来在Android领域的思考和研究。本课程系列将介绍GOF经典设计模式以及面向对象设计的5大原则,分析这些设计模式在Android中的实际使用场景,并使用大量案例,在短短的几堂课中,帮助学员迅速掌握学习设计模式的方法。
掌握二十多个设计模式在Android中的使用场景,理解模式背后深层次的思想,更重要的是,学会如何学习一门新技术。
1天(6H)
受众人群
从事Android开发1-2年的程序员。对设计模式感兴趣的程序员。对新技术充满渴望的程序员。
第1讲 SOLID | l 单一性原则 n 一个类只干一件事情 n 从Activity中剥离Adapter l 开闭原则 n 对扩展开放,对修改封闭 n 从switch-case谈起 l 里氏替换原则 n 父类,子类? n 对多态的重新认识 n 白马与马 l 依赖倒置原则 n 依赖于抽象,而不是依赖于具体 n 模版方法 n 从WebService到JSON l 接口隔离原则 n 类之间的依赖,建立于最小粒度的接口 n 看人下菜碟 n 宽窄接口 l 迪米特法则 n 不要和陌生人说话 l 总结 n 《建筑的永恒之道》 n Has-A和Is-A n 组合,还是继承? n 可插拔技术 n 面向接口编程 |
第2讲 创建型设计模式 | l 简单工厂 n 定义及UML图、通用代码实现 n Android中的使用场景:Activity的onCreate方法 n Android中的一个例子:文件存储 l 工厂模式 n 定义及UML图、通用代码实现 n 简单工厂与工厂的微小区别 n 反射与工厂模式的配合 l 抽象工厂模式 n 定义及UML图、通用代码实现 n 与工厂模式的区别 n 文件存储的抽象工厂实现 l 单例模式 n 定义及UML图、通用代码实现 n 序列化 n 多例 n Android中的使用场景:ImageLoader l 原型模式 n 定义及UML图、通用代码实现 n 浅拷贝和深拷贝 n 一个例子:孙悟空的分身 n Android中的使用场景:Intent l 生成器模式 n 定义及UML图、通用代码实现 n 编写一个例子:绘制笑脸 n 变体:Director的蜕化 n Android中的使用场景:AlertDialog |
第3讲 构造型设计模式(1) | l 适配器模式 n 定义及UML图、通用代码实现 n 类适配器和对象适配器 n 一个例子:变压器 n Android中的使用场景:Adapter l 桥接模式 n 定义及UML图、通用代码实现 n 两个维度的简单工厂 n 加法,还是乘法? n 编写一个例子:蜡笔与水彩笔 l 代理模式 n 定义及UML图、通用代码实现 n 在Android中的实现:Binder与AIDL n 静态代理和动态代理 n 远程代理 n 虚拟代理 n 保护代理 n 智能引用 n Android插件化的一种实现方式:静态代理 |
第4讲 构造型设计模式(2) | l 组合模式 n 温习一下递归算法 n 定义及UML图、通用代码实现 n 实现的两种方式 n 一个现实中的例子:山上有座庙 n Android中的使用场景:View和ViewGroup l 享元模式 n 定义及UML图、通用代码实现 n 不变模式 n 享元是多例与不变模式的组合 n 自己编写一个例子:围棋 n Android中的使用场景:String l 装饰器模式 n 定义及UML图、通用代码实现 n 编写一个例子:炒菜 n Stream流 n Android中的使用场景:ContextWrapper l 外观模式 n 定义及UML图、通用代码实现 n Android中的使用场景:Context |
第5讲 行为型设计模式(1) | l 职责链模式 n 定义及UML图、通用代码实现 n 在Android中的应用:事件分发机制 n 写一个例子:游戏中的伤害计算 l 模版方法模式 n 定义及UML图、通用代码实现 n 在Android中的应用1:AsyncTask n 在Android中的应用2:Activity的生命周期函数 l 命令模式 n 定义及UML图、通用代码实现 n 例子1:玉皇大帝派太上老君封孙悟空为齐天大圣 n 回滚(undo) n 在Android中的应用1:AAPT l 备忘录模式 n 定义及UML图、通用代码实现 n 回滚机制的另一种实现 n 例子:单机游戏的保存和加载 n 宽窄接口:IMemento n 在Android中的应用:onSaveInstanceState |
第6讲 行为型设计模式(2) | l 迭代器模式 n 定义及UML图、通用代码实现 n 外部迭代器和内部迭代器 n 在Android中的应用:Cursor l 策略模式 n 定义及UML图、通用代码实现 n 基于策略模式的排序算法 n 在Android中的应用:Comparator l 观察者模式 n 定义及UML图、通用代码实现 n 例子:RSS n 在Android中的应用1:Adapter的notifyDataSetChanged方法 n 在Android中的应用2:BroadcastReceiver n 在Android中的应用3:事件总线EventBus l 中介者模式 n 定义及UML图、通用代码实现 n 在Android中的应用:Activity中控件间通信 n 编写一个例子:房产中介 l 状态模式 n 定义及UML图、通用代码实现 n 写一个例子:空调遥控器 n 在Android中的应用:View的onVisibilityChanged方法 n 在App中的应用:用户登录 |