行为型模式
- 命令模式 - > (电视机的开关命令)
- 备忘录模式 - > (游戏的存档)
- 中介模式 - > (各国发言在联合国中发言)
- 状态模式 - > (关灯/开灯的状态问题)
- 访问者模式 - > (CTO、CEO等访问者对于员工的咨询关心的方面不同)
- 责任链模式 - > (View事件分发机制/小明拿着100w的报销单找组长报销,组长->部长->经理->老板)
- 策略模式 - > (定义多个算法,用的时候可以按需切换)
- 模板模式 - > (BaseActivity)
- 观察者模式 - > (RxJava、广播、RxBus)
- 迭代模式 - > (对学校类的查询、增加、删除,不关心里面的实现)
- 建造者模式 - > (设定好builder,再建造出来,Dialog、Okhttp)
创建型模式
- 单例模式 - > (有且只有一个,像一些第三方库的初始化啊,retrofit的初始化啊,单例也分饿汉和懒汉)
- 简单工厂模式 - > (计算器,根据输入不同的操作符,工厂给你选择相应的方法进行处理)
- 工厂方法模式 - > (用不同的工厂处理问题)
- 抽象工厂模式 - > (不同厂商生产的电脑)
- 原型模式 - > (clone的用法)
结构型模式
- 桥接模式 - > (哪个地方的餐厅红烧肉好吃)
- 装饰者模式 - > (动态给一个对象增加额外的功能)
- 适配器模式 - > (乔丹,科比, 姚明-adapter)
- 享元模式 - > (火车票 handler 发送message 对象池)
- 代理模式 - > (海外代购,代打游戏)
- 门面模式 - > (做饭的,做面的,对外暴露厨师)
- 组合模式 - > (文件夹、View和View Group)