命令模式
Posted not2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令模式相关的知识,希望对你有一定的参考价值。
一、概述
一般问题:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。
核心方案:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。
设计意图:一个对象调用另一个对象方法,或者换一种说法,一个对象向另一个对象发起一个请求,这在程序中是再正常不过的现象。然而设计模式的脾气向来都是“一言不合就拆,拆,拆”,这次拆不是因为请求内容多变,而是其执行时机多变。换句话说,我知道我要发起一个请求,但是什么时候执行、由谁来执行、是否会反悔都是不确定的。所以,干脆把请求对象化,想仍给谁就仍给谁,想什么时候扔就什么时候扔,不想要了就丢掉。这就是命令模式的初衷:把行为请求者与行为执行者解耦。
命令模式类图如下:
以上是关于命令模式的主要内容,如果未能解决你的问题,请参考以下文章