• Java设计模式----命令模式


    解决什么样的问题

    自定义按键

    代码讲解

    紧密耦合关系

    public class NBAGameHandler {
    
        public void pushA(){
            System.out.println("投篮");
        }    
        public void pushB(){
            System.out.println("封盖");
        }    
        public void pushC(){
            System.out.println("抢断");
        }
        public void pushD(){
            System.out.println("挡拆");
        }
    }

    以物件来代表实际行动。也就是说方法的内容抽象到一个对象中。把按键和动作解耦。

    public interface Command {
    
        public abstract void excute();
    }
    public class NBAGameHandler {
    
        private Command[] command = new Command[4];
        public void setA(Command command){
            this.command[0]=command;
        }
        public void setB(Command command){
            this.command[1]=command;
        }
        public void setC(Command command){
            this.command[2]=command;
        }
        public void setD(Command command){
            this.command[3]=command;
        }
        
        public void pushA(){
            command[0].excute();
        }    
        public void pushB(){
            command[1].excute();
        }
        
        public void pushC(){
            command[2].excute();
        }
        public void pushD(){
            command[3].excute();
        }
    }
    public static void main(String[] args) {
            NBAGameHandler handler = new NBAGameHandler();
            handler.setA(new ShootCommand());
            handler.setB(new BlockCommand());
            handler.setC(new PickAndRollCommand());
            handler.setD(new StealCommand());
            
            handler.pushA();
            handler.pushB();
            handler.pushC();
            handler.pushD();
        }
    public class BlockCommand implements Command{
    //真实项目往往在这里会封装一个对象,完成具体的业务!!!而不会简单的打印一句话哦。
        @Override
        public void excute() {
            System.out.println("封盖");
        }
    
    }
  • 相关阅读:
    白兔的字符串(字符串hash+模拟map)
    [TJOI2013]单词(AC自动机+前缀和维护)
    [SDOI2014]数数(ac自动机+数位DP)
    阿狸的打字机(AC自动机+dfs序 + 维护区间值)
    string(AC自动机 在线询问转离线询问)
    E
    JMX超详细解读
    快速生成100万数据人员信息数据
    聊聊spring之bean对象的实例化过程
    聊聊spring之贯穿全局的重要对象BeanDefinition
  • 原文地址:https://www.cnblogs.com/holos/p/6627131.html
Copyright © 2020-2023  润新知