@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(/css/cuteeditor.css);

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}

Normal
0
false

10 pt
0
2

false
false
false

EN-US
ZH-CN
X-NONE

$([{£¥·‘“〈《「『【〔〖〝﹙﹛﹝$(.[{£¥
!%),.:;>?]}¢¨°·ˇˉ―‖’”…‰′″›℃∶、。〃〉》」』】〕〗〞︶︺︾﹀﹄﹚﹜﹞!"%'),.:;?]`|}~¢

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Calibri;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}

 

课程名称:Android与设计模式

一、     简介

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

本课程让学员掌握二十多个设计模式在Android中的使用场景,理解模式背后深层次的思想,更重要的是,学会如何学习一门新技术。

本课程对于开发以下App产品特别有帮助:

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

2、业务功能繁多。

本课程适用于具有以下特征的学员:

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

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

二、     培训大纲(2天)

第一天 上午

第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   面向接口编程

9.       
简单工厂

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

l   Android中的使用场景:Activity的onCreate方法

l   Android中的一个例子:文件存储

第2讲
创建型设计模式(一)

1.       
工厂模式

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

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

l   反射与工厂模式的配合

2.       
单例模式

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

l   多例

l   Android中的使用场景:ImageLoader

第一天 下午

第1讲
创建型设计模式(二)

1.       
单例模式

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

l   多例

l   Android中的使用场景:ImageLoader

2.       
原型模式

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

l   浅拷贝和深拷贝

l   一个例子:孙悟空的分身

l   Android中的使用场景:Intent

3.       
生成器模式

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

l   编写一个例子:绘制笑脸

l   Android中的Builder模式

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   智能引用

第二天 上午

第1讲
构造型设计模式(二)

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

 

第2讲
行为型设计模式(一)

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

第二天 下午

第1讲
行为型设计模式(二)

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中的应用:用户登录

第2讲
总结回顾

1.       
回顾23个设计模式

2.       
设计模式沉思

v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}

Normal
0
false

10 pt
0
2

false
false
false

EN-US
ZH-CN
X-NONE

$([{£¥·‘“〈《「『【〔〖〝﹙﹛﹝$(.[{£¥
!%),.:;>?]}¢¨°·ˇˉ―‖’”…‰′″›℃∶、。〃〉》」』】〕〗〞︶︺︾﹀﹄﹚﹜﹞!"%'),.:;?]`|}~¢

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:Calibri;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}



@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

包建强的培训课程(2):Android与设计模式的更多相关文章

  1. 包建强的培训课程(1):Android App企业级开发

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  2. 包建强的培训课程(16):Android新技术入门和提高

    @import url(/css/cuteeditor.css); Normal 0 10 pt 0 2 false false false EN-US ZH-CN X-NONE $([{£¥·‘“〈 ...

  3. 包建强的培训课程(6):Android App瘦身优化

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  4. 包建强的培训课程(10):Android插件化从入门到精通

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  5. 包建强的培训课程(14):Android与ReactNative

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  6. 包建强的培训课程(9):Android App性能优化

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  7. 包建强的培训课程(15):Android App热修复技术

    @import url(/css/cuteeditor.css); Normal 0 10 pt 0 2 false false false EN-US ZH-CN X-NONE $([{£¥·‘“〈 ...

  8. 包建强的培训课程(3):App竞品技术分析

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  9. 包建强的培训课程(4):App测试深入学习和研究

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

随机推荐

  1. JVM学习03:性能监控工具

    JVM学习03:性能监控工具 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 性能监控工具知识要点Xmind梳理 案例分析 案例分析1-JPS 案例分 ...

  2. mysql 中启动服务的命令 、登录命令、退出命令 mysql 的常用命令

    1.cmd 以管理员执行 下面命令 启动服务 :net start mysql57 关闭 服务:net stop mysql57 查看mysql 的版本信息 : mysql -V 指定主机地址登录: ...

  3. why?

    优点 充分利用多核CPU的计算能力: 方便进行业务拆分,提升应用性能 缺点 上下文切换 注意线程安全,避免死锁

  4. Android面试准备20190422

    1.即时推送原理,采用的push推送模式,保持一个长连接,服务端和客户端连接后不再断开.所谓长连接,即是在一个TCP上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发送检测 ...

  5. Pyton:类变量,实例变量,类对象,实例对象

    https://www.cnblogs.com/crazyrunning/p/6945183.html

  6. node.js中对 mysql 进行增删改查等操作和async,await处理

    要对mysql进行操作,我们需要安装一个mysql的库. 一.安装mysql库 npm install mysql --save 二.对mysql进行简单查询操作 const mysql = requ ...

  7. 安卓学习 intent

    其实学习了好几个星期了,是看老罗的视频,但进度太慢 今天 换了一本书 Intent 切换页面 啊啊啊啊 CompentName comp=new CompentName(MainActivity.th ...

  8. java的基本数据类型和引用类型

    一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...

  9. 天兔(Lepus)数据库监控系统安装笔记

    天兔(Lepus)数据库监控系统安装笔记 一.部署:本次操作系统:centos6.9 IP:192.168.153.145Lepus_v3.8_beta MySQL-python-1.2.5xampp ...

  10. Python3 在操作excel时报PermissionError: [Errno 13] Permission denied: 'D:/workstation/yhdx_auto/config/case.xls'错误

    此问题为文件被拒绝访问,主要是该文件已经被打开了.关闭此excel文件后在执行excel的相关操作就ok了.