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

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

    抽象命令类(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 }
  • 相关阅读:
    python使用smtplib库和smtp.qq.com邮件服务器发送邮件
    使用CreateRemoteThread把代码远程注入指定exe执行
    python带cookie提交表单自动登录
    linux+win7双系统重装win7修复grub的办法
    最后总结
    Alpha项目测试--个人第五次作业
    第四次结对编程作业
    第三次作业--原型设计
    熟悉使用工具---第二次作业
    虫虫吃第一颗豆子---第一次作业
  • 原文地址:https://www.cnblogs.com/loveer/p/11273668.html
Copyright © 2011-2022 走看看