@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. Python学习笔记4基本数据类型续

    start  16:36 时间格式化 程序计时:指测量起止动作所经历的时间的过程 实例四文本进度条 #a表示星号被复制的的次数 文本进度条的动态刷新 实现刷新功能的简单代码,但你会发现并没有实现在同一 ...

  2. [leetcode]66. Plus One加一

    Given a non-empty array of digits representing a non-negative integer, plus one to the integer. The ...

  3. Spring常用注解总结(1)

    前言:项目中常用的注解常看常记,总会对自己有些好处,所以在这里分享一下. 使用spring时,可以使用xml配置文件配置相关信息.但是我还是喜欢用注解的方式,因为可以充分利用反射机制获取类结构信息,而 ...

  4. docker 容器 详解

    docker run  ## 创建一个新容器 [root@localhost ~]# docker run --help Usage: docker run [OPTIONS] IMAGE [COMM ...

  5. C#smtp邮件消息提醒的一些bug总结

    软件通过检测公众号的某些链接是否异常发邮件提醒.. 1:网上找了些方法有说ssl  system.net.mail 不支持 ,这种说法是有问题的,其方法内设置的验证账号写成了邮箱的地址而不是账号也就是 ...

  6. ServletConfig、ServletContext 的应用

    一.ServletConfig对象及其应用(用的不多) 1. Context和ContextPath:一个web工程,若名为JavaWeb,访问的路径为:http://localhost:8080/J ...

  7. 基于SoftRoCE 了解RDMA

    RDMA是基于IB技术的内存直接传送,无需内核参与,硬件网卡搞定.IB需要HPC领域的专用硬件,ROCE则是RDMA协议在普通以太网卡的实现,RoCEv1是在MAC上的二层封装,局域网内可以,要通过路 ...

  8. java8 学习记录

    一.  lambda表达式 参考 https://www.cnblogs.com/franson-2016/p/5593080.html package com.mytest.java8; impor ...

  9. C#读取word内容实践

    C#读取word文档是如何实现的呢?我们可以使用FileStream对象来把文本文件里面的信息读取出来,但是对于word文档来说就不能使用这样的方法了. 这种情况下C#读取word文档的实现我们需要使 ...

  10. Lucene学习笔记:基础

    Lucence是Apache的一个全文检索引擎工具包.可以将采集的数据存储到索引库中,然后在根据查询条件从索引库中取出结果.索引库可以存在内存中或者存在硬盘上. 本文主要是参考了这篇博客进行学习的,原 ...