热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

设计模式_包建强的培训课程:Android与设计模式

篇首语:本文由编程笔记#小编为大家整理,主要介绍了包建强的培训课程:Android与设计模式相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了包建强的培训课程:Android与设计模式相关的知识,希望对你有一定的参考价值。




 

一、     简介

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

 

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

 

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

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

2、业务功能繁多。

 

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

11-2Android开发经验。

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

 

二、     培训大纲(3天)

1
上午 讲SOLID
五大原则及UML图绘制

1.       
单一性原则

l   一个类只干一件事情

l   Activity中剥离Adapter

2.       
开闭原则

l   对扩展开放,对修改封闭

l   switch-case谈起

3.       
里氏替换原则

l   父类,子类?

l   对多态的重新认识

l   白马与马

4.       
依赖倒置原则

l   依赖于抽象,而不是依赖于具体

l   模版方法

l   WebServiceJSON

5.       
接口隔离原则

l   类之间的依赖,建立于最小粒度的接口

l   看人下菜碟

l   宽窄接口

6.       
迪米特法则

l   不要和陌生人说话

7.       
UML图绘制

l   接口、类

l   类的关系(关联、依赖、聚合、组合)

8.       
总结

l   《建筑的永恒之道》

l   组合,还是继承?

l   可插拔技术

l   面向接口编程

 

1
下午 创建型设计模式

1.       
简单工厂

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

l   Android中的使用场景:ActivityonCreate方法

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中的实现:BinderAIDL

l   静态代理和动态代理

l   远程代理

l   虚拟代理

l   保护代理

l   智能引用

 

2
下午 构造型设计模式(二)

1.       
组合模式

l   温习一下递归算法

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

l   实现的两种方式

l   一个现实中的例子:山上有座庙

l   Android中的使用场景:ViewViewGroup

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中的应用1AsyncTask

l   Android中的应用2Activity的生命周期函数

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中的应用1AdapternotifyDataSetChanged方法

l   Android中的应用2BroadcastReceiver

l   Android中的应用3:事件总线EventBus

4.       
中介者模式

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

l   编写一个例子:房产中介

l   Android中的应用:Activity中控件间通信

5.       
状态模式

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

l   写一个例子:空调遥控器

l   Android中的应用:ViewonVisibilityChanged

l   App中的应用:用户登录

 



推荐阅读
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 本视频教程将带你快速了解 Android 开发的基础知识,并详细讲解如何在 Android 应用中使用 SQLite 数据库进行数据存储和管理。 ... [详细]
  • 在分析Android的Audio系统时,我们对mpAudioPolicy->get_input进行了详细探讨,发现其背后涉及的机制相当复杂。本文将详细介绍这一过程及其背后的实现细节。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 本项目通过Python编程实现了一个简单的汇率转换器v1.02。主要内容包括:1. Python的基本语法元素:(1)缩进:用于表示代码的层次结构,是Python中定义程序框架的唯一方式;(2)注释:提供开发者说明信息,不参与实际运行,通常每个代码块添加一个注释;(3)常量和变量:用于存储和操作数据,是程序执行过程中的重要组成部分。此外,项目还涉及了函数定义、用户输入处理和异常捕获等高级特性,以确保程序的健壮性和易用性。 ... [详细]
  • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
    在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
author-avatar
mobiledu2502884633
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有