• 设计模式(第十四式:命令模式)


    概念:
      命令模式:Encapsulates a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations.将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的赊销和恢复功能。

    实现:
      指令接口

    public interface Command {
        void execute();
    }


      具体指令

    public class ReaderCommand implements Command {
    
        private Book book;
    
        public ReaderCommand(Book book){
            this.book = book;
        }
    
        @Override
        public void execute() {
            book.read();
        }
    }

      

      执行器

    public class Invoker {
    
        private Command command;
    
        public void setCommand(Command command){
            this.command = command;
        }
    
        public void action(){
            this.command.execute();
        }
    }


    测试:

    @Test
    public void commandTes(){
    
        Command command = new ReaderCommand(new Book());
    
        Invoker invoker = new Invoker();
        invoker.setCommand(command);
    
        invoker.action();
    }


    分析:
      1.具有很好的可扩展性,因为抽象了指令接口做父类。
      2.解藕合,执行器不需要关心调用的是什么对象,只关系输入的指令。
      3.可以和很多模式结合使用,比如模版方法模式,在执行器或者具体指令中都可添加模版方法。
      4.可能也会出现大量的指令类,因为一般指令类只实现一个指令方法。


  • 相关阅读:
    关于Kb/s,KB/s的一些知识
    关于停止AsyncTask和Thread的问题
    Android使用layer-list实现三面边框
    MX4连接后adb无法识别解决方法
    浅析LruCache原理
    Android DiskLruCache 硬盘缓存
    NDK、SDK以及JNI的关系
    Android系统提供的开发常用的包名及作用
    MVC学习十三:RouteDebugger插件应用
    MVC学习十二:Ajax.ActionLink用法
  • 原文地址:https://www.cnblogs.com/ben-mario/p/11133155.html
Copyright © 2020-2023  润新知