设计模式分为三种类型,共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