设计模式(3)
来源:互联网 发布:贵州大数据交易平台 编辑:程序博客网 时间:2024/05/17 23:07
命令模式:将“请求”封装成对象,以便使用不同的请求、队列、日志来参数化其他对象。命令模式也支持可撤销的操作。
1、将动作的请求者从动作的执行者对象中解耦出来。
2、在被解耦的两者之间是通过命令对象进行沟通的,命令对象封装了接收者和一个或一组动作。
3、调用者通过调用命令对象的execute()发出请求,这会使得接收者的动作被调用。
4、调用者可以接受命令当作参数,甚至在运行时动态的进行。
5、宏命令是命令的最简单的延伸,允许调用多个命令。
6、命令可以支持撤销,实现一个undo()方法来回到execute()被执行前的状态。
用途:队列请求,日志请求,事物系统。
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
1、当需要使用一个现有的类,而其接口并不符合你的需求时,就使用适配器模式。
2、适配器有对象适配器(使用组合)和类适配器(使用继承)
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
1、当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观模式。
2、最少知识原则。
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
1、代码复用。
2、抽象类可以定义具体方法、抽象方法、钩子。
3、钩子是一种方法,他在抽象类中不做事,或者只做默认的事情,子类可以选择要不要去覆盖他。
4、策略模式和模板模式都是封装算法,一个用组合,一个用继承。
5、工厂方法是模板方法的一种特殊版本。
迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。
组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构,组合能让客户以一致的方式处理个别对象以及对象组合。
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的状态。
1、状态模式允许一个对象基于内部状态而拥有不同的行为。
2、通过将每个状态封装进一个类,我们把以后需要做的任务改变局部化了。
代理模式:为另一个对象提供一个替身或占位符以访问这个对象。
1、结构上类似装饰者模式。
- 设计模式(3)
- 设计模式(3)
- 设计模式(3)
- 设计模式(3)
- 设计模式(3)
- 设计模式3(建造者模式)
- 设计模式之Bridge模式(3)
- 设计模式(3)-工厂方法模式
- java设计模式(3)--观察者模式
- 设计模式(3)观察者模式
- 设计模式(3):抽象工厂模式
- 设计模式(3):抽象工厂模式
- 设计模式(3):装饰模式
- 设计模式:3)观察者模式
- 设计模式(3):抽象工厂模式
- 设计模式学习(3)适配器模式
- 设计模式(3)--Prototype 原型模式
- 设计模式(3)--适配器模式
- 使用wireshark抓取解密https包
- MySQL 数据备份与恢复(小学生篇)
- 练习23
- 动态代理详解
- System.out.println的神奇之处
- 设计模式(3)
- 智障小车.c
- 练习24
- Windows下安装Redis及php的redis拓展教程
- 将一个list分成多个list的Java实现。
- 【Redis】高可用
- SimpleDateFormat的使用
- 练习25
- 练习26