zoukankan      html  css  js  c++  java
  • 设计模式

    命令模式:将命令的请求和执行解耦,使面向客户端的命令参数化
    核心:(组合)控制器(Controller) + 命令接口(IAction),实现命令参数化
    角色:

    • 客户端:只需将命令参数发送给控制器即可
    • 控制器Controller:接受命令参数后,①完成命令参数到命令对象的解析,②调用对应命令对象的执行方法
    • 命令处理器ICommandAction/ConcreteCommandAction:命令的执行逻辑实现

    general

    public class Test {
        public static void main(String[] args) {
            // 客户端向invoker发送命令参数即可,具体的命令只需由invoker去调用实现。(解耦)
            Invoker controller = new Invoker();
            controller.actions(Invoker.Commands.PLAY);
            controller.actions(Invoker.Commands.TURN_UP);
            controller.actions(Invoker.Commands.TURN_DOWN);
            controller.actions(Invoker.Commands.STOP);
        }
    }
    
    // 负责命令的执行,其中可以增加一些控制逻辑(如:取消,暂停等)
    public class Invoker {
        public void actions(ICommandAction command){
            command.execute();
        }
    
        // 命令列表,作为用户请求命令的入口
        public static class Commands{
            public final static ICommandAction PLAY = new PlayAction();
            public final static ICommandAction STOP = new StopAction();
            public final static ICommandAction TURN_DOWN = new TurnDownVoicesAction();
            public final static ICommandAction TURN_UP = new TurnUpVoicesAction();
        }
    }
    
    // 命令抽象,存放命令的具体实现逻辑
    public interface ICommandAction {
        void execute();
    }
    
    public class PlayAction implements ICommandAction {
        @Override
        public void execute() {
            System.out.println("Start play!");
        }
    }
    
    public class StopAction implements ICommandAction {
        @Override
        public void execute() {
            System.out.println("Stop play!");
        }
    }
    

    欢迎疑问、期待评论、感谢指点 -- kiqi,愿同您为友

    -- 星河有灿灿,愿与之辉

  • 相关阅读:
    asp.net core-15.Individual authentication 模板
    Thread,Task,async/await,IAsyncResult
    asp.net core-14.JWT认证授权 生成 JWT Token
    asp.net core-13.Cookie-based认证实现
    asp.net core-12.dotnet watch run 和attach到进程调试
    asp.net core-11.WebHost的配置
    asp.net core-10.Http请求的处理过程
    asp.net core-9.依赖注入的使用
    asp.net core-8. 配置的热更新
    asp.net core-7.在Core Mvc中使用Options
  • 原文地址:https://www.cnblogs.com/kiqi/p/14058661.html
Copyright © 2011-2022 走看看