zoukankan      html  css  js  c++  java
  • 命令模式(3)-宏命令

    一个具体命令包含一个其他命令的集合

    数字接受者:
    
    package DesignPatterns.CommandMode2;
    
    import java.util.Random;
    
    public class PrintNumber {
        public void printNumber()
        {
            Random random=new Random(10);
            int a=random.nextInt();
            System.out.println("number:"+a);
        }
    }
    
    语言接受者:
    
    package DesignPatterns.CommandMode2;
    
    
    public class PrintLetter {
        public void printEnglish()
        {
            String eng="English";
            System.out.println(eng);
    
        }
        public void printRussian()
        {
            String russian="Ж жЗ з Z 兹И и I 伊";
            System.out.println(russian);
        }
    }
    
    命令接口:
    
    package DesignPatterns.CommandMode2;
    
    public interface Command {
        void   execute();
    }
    
    
    
    英文具体命令:
    
    package DesignPatterns.CommandMode2;
    
    public class PrintEnglishCommand implements  Command{
        private PrintLetter printLetter;
        public PrintEnglishCommand(PrintLetter printLetter)
        {
            this.printLetter=printLetter;
        }
        @Override
        public void execute() {
            printLetter.printEnglish();
        }
    }
    
    俄文具体命令:
    
    package DesignPatterns.CommandMode2;
    
    public class PrintRussianCommand implements Command {
        private PrintLetter printLetter;
        public PrintRussianCommand(PrintLetter printLetter)
        {
            this.printLetter=printLetter;
        }
        @Override
        public void execute() {
            printLetter.printRussian();
        }
    }
    
    数字具体命令:
    
    package DesignPatterns.CommandMode2;
    
    public class PrintEvenNumberCommand implements Command {
        private PrintNumber printNumber;
        public PrintEvenNumberCommand(PrintNumber printNumber)
        {
            this.printNumber=printNumber;
        }
        @Override
        public void execute() {
            printNumber.printNumber();
        }
    }
    
    
    宏命令(包含英文命令,俄文命令,数字命令的集合)
    
    package DesignPatterns.CommandMode2;
    
    import java.util.ArrayList;
    
    public class MacroCommand implements Command {
        private ArrayList<Command> arrayList;
        public MacroCommand(ArrayList<Command>  arrayList)
        {
            this.arrayList=arrayList;
        }
        @Override
        public void execute() {
            for (int i=0;i<arrayList.size();i++)
            {
               Command command=arrayList.get(i);
               command.execute();
            }
        }
    }
    
    请求者:
    
    package DesignPatterns.CommandMode2;
    
    public class RequestMakedir {
        private Command command;
        public void setCommand(Command command)
        {
            this.command=command;
        }
        public void executeCommand()
        {
            command.execute();
        }
    
    }
    
    测试类:
    
    package DesignPatterns.CommandMode2;
    
    import java.util.ArrayList;
    
    public class Application {
        public static void main(String[] args) {
            ArrayList<Command> arrayList=new ArrayList<>();
            Command command1=new PrintEnglishCommand(new PrintLetter());
            Command command2=new PrintRussianCommand(new PrintLetter());
            Command command3=new PrintEvenNumberCommand(new PrintNumber());
            arrayList.add(command1);
            arrayList.add(command2);
            arrayList.add(command3);
            Command macroCommand=new MacroCommand(arrayList);
            RequestMakedir requestMakedir=new RequestMakedir();
            requestMakedir.setCommand(macroCommand);
            requestMakedir.executeCommand();
        }
    }
  • 相关阅读:
    [原创]Java在线编辑word文档调用PageOffice实现并发控制
    [原创]Java动态填充word文档并上传到服务器
    mysql数据类型
    mysql 数据增删改查基本语句
    MYSQL中char 与 varchar 的区别
    MYSQL 同时执行多条SQL语句
    关于MyEclipse10编辑JSP卡顿现象
    鼠标悬停放大图片效果
    简单实现 飘浮 广告层特效
    简单实现 特效(董侨JonneyDong)
  • 原文地址:https://www.cnblogs.com/dloading/p/10753551.html
Copyright © 2011-2022 走看看