您的位置:首页 > 移动开发 > Android开发

什么情况使用什么设计模式(Android源码设计模式解析与实战)

2017-12-18 18:26 791 查看
设计模式分为三种类型,共23类。

一、创建型模式:单例模式、抽象工厂模式、建造者模式(Builder)、工厂模式、原型模式。

二、结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

三、行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

1、单例模式(应用最广的模式)

ImageLoader初始化

Retrofit初始化

OkHttp初始化

… 初始化

2、Builder模式(自由拓展你的项目)

快速构建一个AlertDialog

快速构建一个MaterialDialog

3、原型模式(使程序运行更高效)

登录Session,只读,不允许修改

4、工厂(抽象工厂)模式(创建型设计模式)

Java中的数据访问层Dao

接口并发同步数据

5、策略模式(多种解决方式拆分多个类)

解放 if else / switch case

6、状态模式

APP判断当前登录状态

播放器的播放、暂停状态

遥控器的开机、关机、音量大小

7、责任链模式(灵活编程)

审批流

8、解释器模式(化繁为简的翻译机)【使用很少】

一些重复出现的问题用一种简单的语言表达

9、命令模式(让程序畅通执行)

画板的撤销和重做

eclipse的ctrl + z 和 ctrl + y

10、观察者模式(解决、解耦的钥匙)

广播订阅发布

同时关闭多个activity

EventBus事件总线

ListView的notifyDataSetChanged

11、备忘录模式(编程中的后悔药)

游戏中的存档

Android 中页面异常销毁,onSaveInstanceState

播放器的存档,恢复播放

12、迭代器模式(封装遍历方法)

开发者很少自己实现迭代器,此模式作为了解

13、模板方法模式(抓住问题的核心)

AsyncTask执行流程

请求框架的流程:创建请求-执行请求-解析返回数据

14、访问者模式(数据操作和结构分离)【使用很少】

ButterKnife

Dagger2

15、中介者模式(和事佬)

数据库多对多中的中间表

mvp中的p

UI控件交互

16、代理模式(委托书)

代理服务器

律师

ActivityManagerProxy

Spring中的AOP

Struts2中的拦截器

17、组合模式(物以类聚)【使用很少】

View和ViewGroup的组合

18、适配器模式(得心应手的“粘合剂”,让不兼容变兼容)

RecylerView的Adapter

变压器

19、装饰模式(动态拓展功能)

Context

20、享元模式(对象共享,避免创建过多对象)

UI线程中更新视图

Android的消息机制

21、外观模式(统一编程接口)

封装API(请求模块、sql模块、图片加载)

手机集合拍照、打电话、上网功能的统一接口

开源库

22、桥接(梁)模式(连接两地的交通枢纽)

数据库Dao

自定义控件

应用层和Native层的桥梁

23、MVC

model(模型):本地或者网络数据体

View(视图):View

Controller(控制器):Activity

上面3者配合进行数据加载的过程

24 MVP(model、View、Presenter)

model(模型):本地或者网络数据体

View(视图):View

Presenter(交互中间人):Presenter

上面3者配合进行数据加载的过程

所有Demo

http://download.csdn.net/download/zx_android/10222148

更多详解:

http://blog.csdn.net/qq_17766199/article/category/6009933/2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: