命令模式(Command)
定义: 将来自客户端的请求传入一个对象,无需了解这个请求激活的 动作或有关接受这个请求的处理细节。
主要实现的是把客户的各种请求和操作封装到一个命令对象中,从而达到把命令的请求和对命令的
具体执行两者之间的关系相互分离的目标;同时还能对命令的请求者以统一的形式进行
命令请求(功能调用),并委派给不同的对象
解决问题:只关心行为,不关心具体执行类或者实现.
优点:解耦了发送者和接受者之间联系。 发送者调用一个操作,接受者接受请求执行相应的动作,因为使用Command模式解耦,发送者无需知道接受者任何接口。
举例说明:
我们去饭店吃饭,角色里有我,服务员,厨师(能烧多种菜)
分析:1、我是命令的请求者
2、厨师是执行命令的对象
3、服务员是命令控制者。
4、我们可以定义1个抽象命令(该命令下有1系列子命令,每个子命令调用厨师的1门手艺,比如红烧猪手)
举例说明:
我们知道我们访问1个网站,网站能够同时接受的人数是有限的,我们发送的请求是1个命令,这些命令存放在命令列表里,这些命令可以被执行或是撤消。
项目中应用:在某个管理系统中,需要对每个登陆的用户进行日志记录,但是日志记录有多种形式,比如:
控制台,log4j