这里有新鲜出炉的Java函数式编程,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要帮助大家轻松掌握Java命令模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
定义:请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。
特点:
1、降低了系统耦合度。
2、新的命令可以很容易添加到系统中去。
企业级开发和常用框架中的应用:事务,struts的action控制器
实例:
- public class Demo {
- public static void main(String[] args) {
- Reicever reicever = new Reicever();
- Command command = new ActualCommand(reicever);
- Invoker invoker = new Invoker();
- invoker.addCommand(command);
- invoker.call();
- }
- }
- /**
- * 命令真正的执行者,对于不同的命令可能有不同的命令执行者
- */
- class Reicever {
- public void action() {
- System.out.println("Reicever.action()");
- }
- }
- /**
- * 命令接口,也为了后面统一后面的命令
- */
- interface Command {
- public void excute();
- }
- /**
- * 实际命令对象,可能有很多不同的命令对象
- */
- class ActualCommand implements Command {
- private Reicever reicever;
- public ActualCommand(Reicever reicever) {
- this.reicever = reicever;
- }
- public void excute() {
- reicever.action();
- }
- }
- /**
- * 命令发出者
- */
- class Invoker {
- private List < Command > commands = new ArrayList < >();
- public void addCommand(Command command) {
- commands.add(command);
- }
- public void call() {
- for (Command c: commands) {
- c.excute();
- }
- }
- }
命令模式单独是用的情况很少,一般都是和备忘录模式组合是用。
来源: http://www.phperz.com/article/17/1112/359855.html