• 设计模式一命令模式


    定义
       将一个请求封装为一个对象,
    使发出请求的责任和执行请求的责任分割开。
    这样两者之间通过命令对象进行沟通,
    这样方便将命令对象进行储存、传递、调用、增加与管理。

    抽象命令类(Command)角色:
    声明执行命令的接口,拥有执行命令的抽象方法 execute()。
    具体命令角色(Concrete Command)角色:
    是抽象命令类的具体实现类,它拥有接收者对象,并通过调用接收者的功能来完成命令要执行的操作。
    实现者/接收者(Receiver)角色:
    执行命令功能的相关操作,是具体命令对象业务的真正实现者。
    调用者/请求者(Invoker)角色:
    是请求的发送者,它通常拥有很多的命令对象,并通过访问命令对象来执行相关请求,它不直接访问接收者。
     1 public class Command {
     2     public static void main(String[] args) {
     3         //执行者
     4         receive re = new receive();
     5         //命令对象
     6         SpecificComm tv = new SpecificComm(re);
     7         //请求者
     8         Invoker invoker = new Invoker(tv);
     9         invoker.call();
    10     }
    11 }
    12 
    13 //调用者
    14 class Invoker {
    15     private Comm comm;
    16 
    17     public Invoker(Comm comm) {
    18         this.comm = comm;
    19     }
    20 
    21     public void call() {
    22         comm.execute();
    23     }
    24 }
    25 
    26 //抽象命令
    27 abstract class Comm {
    28     //定义命令的接口,声明执行的方法。
    29     abstract void execute();
    30 }
    31 
    32 //具体命令:将命令封装成对象
    33 class SpecificComm extends Comm {
    34     //通过调用接收者的功能来完成命令要执行的操作
    35     private receive receive;
    36 
    37     public SpecificComm(receive receive) {
    38         this.receive = receive;
    39     }
    40 
    41     @Override
    42     void execute() {
    43         receive.action();
    44     }
    45 }
    46 
    47 //接受者:处理命令
    48 class receive {
    49     public void action() {
    50         System.out.println("开始行动");
    51     }
    52 }
  • 相关阅读:
    利用socket.io实现多人聊天室(基于Nodejs)
    【翻译】Ext JS 5的平板支持
    Spring IoC、DI入门小程序
    初学hibernate之缓存
    获取谷歌浏览器缓存视频方法
    JavaScript模块化学习基础
    HTTP Content-type
    初学Hibernate持久化
    初学Hibernate主键生成策略
    初学Hibernate之Query扩展
  • 原文地址:https://www.cnblogs.com/loveer/p/11273668.html
Copyright © 2020-2023  润新知