zoukankan      html  css  js  c++  java
  • java命令模式;

    package design;
    //烧烤师傅(厨师)
    public class Barbecuer{
    	public void bakeMutton(){
    		System.out.println("烤羊肉串儿");
    	}
    	public void bakeChicken(){
    		System.out.println("烤鸡肉串儿");
    	}
    }
    
    package design;
    public class Main{
    	public static void main(String[] args){
    		//老板到位了
    		Barbecuer boy=new Barbecuer();
    		Command bakeMutton=new BakeMuttonCommand(boy);
    		Command bakeChicken=new BakeChickenCommand(boy);
    		Waiter girl=new Waiter();
    		girl.setOrder(bakeMutton);
    		girl.setOrder(bakeChicken);
    		girl.setOrder(bakeChicken);
    		girl.removeCommand(bakeMutton);
    		girl.notifyBarbecuer();
    		
    		
    	}
    }
    

      

    package design;
    import java.util.*;
    public class Waiter{
    	//发送命令-命令中包含了对象执行
    	private Command command;
    	private List<Command> orders=new ArrayList();
    	//设置订单;
    	public void setOrder(Command command){
    		this.command=command;
    		orders.add(command);
    		//this.notifyBarbecuer();
    		
    	}
    	//通知厨师执行
    	public void notifyBarbecuer(){
    		for(Command c:orders){
    			command.excuteCommand();
    			//orders.remove(command);//清空
    		}
    		
    	}
    	public void removeCommand(Command cc){
    		orders.remove(cc);
    	}
    	
    
    	
    }
    

      

    package design;
    //做规范
    public abstract class Command{
    	public Barbecuer bb;//厨师
    	public Command(Barbecuer bb){
    		this.bb=bb;
    	}
    	//执行命名的方法
    	abstract public void excuteCommand();
    	
    }
    

      

    package design;
    public class BakeMuttonCommand extends Command{
    	public BakeMuttonCommand(Barbecuer rr){
    		super(rr);
    	}
    	
    	public void excuteCommand(){
    		bb.bakeMutton();
    	}
    }
    

      

    package design;
    public class BakeChickenCommand extends Command{
    	public BakeChickenCommand(Barbecuer rr){
    		super(rr);
    	}
    	
    	public void excuteCommand(){
    		bb.bakeChicken();
    		
    	}
    }
    

     

     

      

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    有关需求规格说明
    软件导论第五周作业-------简单小结
    初用sqlite3.exe
    软件开发与模型
    Difference **面向过程(或者叫结构化)分析方法**面向对象分析方法
    当下互联网创业公司采用增量模型的原因
    第七周作业
    第六周作业
    第五周作业
    第四周作业
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13170683.html
Copyright © 2011-2022 走看看