zoukankan      html  css  js  c++  java
  • 设计模式——命令模式

          命令模式:将一个请求封装为一个对象,从而使我们可以用不同的请求对 客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作模式,事务模式。

         例如数据库的底层架构实现就是一种命令模式。

         一个具体的命令来实现命令接口,并且通过Reciever的action()实现execute()方法,Invoker通过call()方法来执行命令。可以把命令参数化,实现调用者和具体命令的执行松耦合。

        一个小Demo:

     

    public interface Command {
    	void execute();
    }
    
    class ConcreteCommand implements Command {
    	
    	private Receiver receiver;
    	public ConcreteCommand(Receiver recerver) {
    		this.receiver = recerver;
    	}
    	
    	@Override
    	public void execute() {
    		//可以做更复杂的操作
    		receiver.action();
    	}
    }
    
    public class Receiver {
    	
    	public void action() {
    		System.out.println("执行命令");
    	}
    
    }
    public class Invoke {
    	private Command cmd;
    	
    	public Invoke(Command cmd) {
    		this.cmd = cmd;
    	}
    	public void call() {
    		cmd.execute();
    	}
    
    }
    public class Client {
    	
    	public static void main(String[] args) {
    		
    		Command cmd = new ConcreteCommand(new Receiver());
    		Invoke invoke = new Invoke(cmd);
    		
    		invoke.call();
    	}
    
    }
    
  • 相关阅读:
    hdu 4334 Trouble
    hdu 4324 Triangle LOVE
    hdu 4255 A Famous Grid
    hdu 3549 Flow Problem
    hdu 3371 Connect the Cities
    hdu 2846 Repository
    hdu 2120 Ice_cream's world I
    P3304 [SDOI2013]直径(【模板】树直径的必经边)
    P5490 【模板】扫描线
    P1364 医院设置(【模板】树的重心)
  • 原文地址:https://www.cnblogs.com/wxisme/p/4540588.html
Copyright © 2011-2022 走看看