• 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("封盖");
        }
    
    }
  • 相关阅读:
    WINXP下安装IIS+PHP5+MySQL5 +Apache
    centos下配置apache+php+mysql!
    在C#中如何调用记事本
    使用c#捕获windows的关机事件(转载)
    C# WinForm中DataGrid列设置(转载)
    软件开发五要五不要原则
    ASP.NET2.0中将文件上传到数据库(转载)
    如何用C#和ADO.NET建立一个数据绑定网格(转载)
    SQL基础:常用SQL语句详解
    什么是极端编程?
  • 原文地址:https://www.cnblogs.com/holos/p/6627131.html
Copyright © 2020-2023  润新知