首页 > 代码库 > 设计模式总结(3)

设计模式总结(3)

设计模式总结(3)
 
==========================================
singleton pattern
 
单件模式:确保一个类只有一个实例,
并提供一个全局访问点。
 
线程安全:
同步getInstance方法:
public synchronized static Singleton getInstance();
 
急切实例化:
private static Singleton uniqueInstance = new Singleton();
 
双重检查加锁
 
 
==========================================
command pattern
 
命令模式:
command execute() client
invoker reciever setCommand()
 
命令模式:
将“请求”封装成对象,以便使用不同的请求、队列
或者日志来参数化其他对象。命令模式也支持可撤销的操作。
 
一个命令对象通过在特定的接受者上绑定一组动作
来封装一个请求。命令对象将对象和接受者包进对象。
这个对象只暴露出execute()/undo() 方法。
 
 
client: 创建一个concreteCommand,并设置接受者;
 
invoker: 持有一个命令对象,调用其execute方法;
 
Command:为所有命令声明了execute()/undo()方法;
 
receiver: 进行必要的工作,实现请求;
 
concreteCommand:定义了动作和接受者之间的绑定关系;
 
当需要将发出请求的对象和执行请求的对象解耦的时候,
使用命令模式。
 
通过命令对象进行沟通,命令对象封装了接受者的一个
或一组动作。
 
调用者通过调用命令对象的execute() 方法发出请求,
接受者执行动作。
 
调用者可以接受命令对象作为参数。
 
 
支持撤销操作。
 
宏命令是调用多个命令对象的execute()。
 
命令也可以实现日志和事务系统。