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("封盖");
        }
    
    }
  • 相关阅读:
    window执行python文件
    百钱买百鸡
    牛的数量有多少
    如何实现杨辉三角
    怎样求解斐波那契数列
    php快速做外包后台开源产品
    如何实现洗牌算法
    如何获取规定的排列组合
    怎样才能得到阿姆斯壮数
    如何利用约瑟夫环来保护你与你的朋友
  • 原文地址:https://www.cnblogs.com/holos/p/6627131.html
Copyright © 2011-2022 走看看