zoukankan      html  css  js  c++  java
  • 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("封盖");
        }
    
    }
  • 相关阅读:
    小埋的Dancing Line之旅:比赛题解&热身题题解
    洛谷P1311 选择客栈
    洛谷 P1039 侦探推理
    洛谷P1140 相似基因
    反⑨baka拖更大队:临时约法
    随机数据生成器
    洛谷P2285 【[HNOI2004]打鼹鼠】
    洛谷P3958 奶酪
    YII 关联查询
    Filter
  • 原文地址:https://www.cnblogs.com/holos/p/6627131.html
Copyright © 2011-2022 走看看