标签:命令模式 对象 事务 是什么 解耦 撤销 实现 意图 方法
一般问题:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。
核心方案:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。
设计意图:一个对象调用另一个对象方法,或者换一种说法,一个对象向另一个对象发起一个请求,这在程序中是再正常不过的现象。然而设计模式的脾气向来都是“一言不合就拆,拆,拆”,这次拆不是因为请求内容多变,而是其执行时机多变。换句话说,我知道我要发起一个请求,但是什么时候执行、由谁来执行、是否会反悔都是不确定的。所以,干脆把请求对象化,想仍给谁就仍给谁,想什么时候扔就什么时候扔,不想要了就丢掉。这就是命令模式的初衷:把行为请求者与行为执行者解耦。
命令模式类图如下:
标签:命令模式 对象 事务 是什么 解耦 撤销 实现 意图 方法
原文地址:https://www.cnblogs.com/not2/p/11088495.html