设计模式学习笔记
来源:互联网 发布:怎样集中注意力 知乎 编辑:程序博客网 时间:2024/06/08 02:32
策略模式:
用于情景:
鸭子行为,鸭子类型可以继承,鸭子行为变成接口,各种各样的行为去实现接口,然后在具体类中调用行为接口具体实现子类。
游戏玩家武器变换。
观察者模式:
用于场景
主题-----观察者
天气预报数据展示,当气象站收集到新的数据时,像各个面板推送最新的数据,面板显示最新数据。
装饰者模式:
用于场景
饮料加调料
调料将饮料一层一层包装。
工厂模式
简单工厂模式:直接创建一个工厂,使用时从工厂拿。
工厂模式:Pizza经典例子
应用:一般在提供API接口可以使用,使用轻易反射实现。
单例模式:
用于某些只有一个对象时。
命令模式:
遥控器的经典例子,操控各个电器的开关。
适配器模式:
2插口变3插口的经典例子
外观模式:
为了更方便的使用,使用一个类对各个类调用,有点像遥控器,家庭影院经典例子。
模板模式:
其实就是把继承抽象类,抽象类实现了部分共同的功能,剩下的抽象方法由子类完成,还有就是一般模板有一个实现了的空的方法,并丢出不支持该操作的异常,子类可以实现也可以不实现,称为钩子
迭代器模式:
餐厅多张菜单的经典例子,每张菜单都有一个自己的迭代器,服务员只需要获取菜单迭代器就可以打印,但这不适合有2级菜单的情况。
组合模式:
同样是餐厅多张餐单,但菜单下还有2级菜单。创建一个抽象类MenuComponent,所有餐厅的菜单都继承,并且有自己的打印方法,在服务员这只要运行打印就可以,迭代放在自己的打印方法中。
用于情景:
鸭子行为,鸭子类型可以继承,鸭子行为变成接口,各种各样的行为去实现接口,然后在具体类中调用行为接口具体实现子类。
游戏玩家武器变换。
观察者模式:
用于场景
主题-----观察者
天气预报数据展示,当气象站收集到新的数据时,像各个面板推送最新的数据,面板显示最新数据。
装饰者模式:
用于场景
饮料加调料
调料将饮料一层一层包装。
工厂模式
简单工厂模式:直接创建一个工厂,使用时从工厂拿。
工厂模式:Pizza经典例子
应用:一般在提供API接口可以使用,使用轻易反射实现。
单例模式:
用于某些只有一个对象时。
命令模式:
遥控器的经典例子,操控各个电器的开关。
适配器模式:
2插口变3插口的经典例子
外观模式:
为了更方便的使用,使用一个类对各个类调用,有点像遥控器,家庭影院经典例子。
模板模式:
其实就是把继承抽象类,抽象类实现了部分共同的功能,剩下的抽象方法由子类完成,还有就是一般模板有一个实现了的空的方法,并丢出不支持该操作的异常,子类可以实现也可以不实现,称为钩子
迭代器模式:
餐厅多张菜单的经典例子,每张菜单都有一个自己的迭代器,服务员只需要获取菜单迭代器就可以打印,但这不适合有2级菜单的情况。
组合模式:
同样是餐厅多张餐单,但菜单下还有2级菜单。创建一个抽象类MenuComponent,所有餐厅的菜单都继承,并且有自己的打印方法,在服务员这只要运行打印就可以,迭代放在自己的打印方法中。
阅读全文
0 0
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式【学习笔记】
- 设计模式 学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 设计模式学习笔记
- 两台路由器的桥接(wds)
- http升级https部署文档
- UVA1151[Buy or Build] 子集枚举+最小生成树
- 单据类型: res.partner, 操作: read
- 自定义TextView
- 设计模式学习笔记
- 对ResNet的理解
- shell 块代码注释
- 基于Android的“健康宝”体检APP(八)
- ALLEGRO学习之铺铜后slide走线困难怎么办
- ubuntu php多版本共存切换,为每个站点设置不同的php版本
- 获取时间差几小时几分钟前 (类似于新浪微博 发表于几小时几分钟前)
- Mysql Centos 7下载安装
- MVN的常用命令介绍