Java基于命令模式实现邮局发信功能详解

  

本文实例讲述了Java基于命令模式实现邮局发信功能。分享给大家供大家参考,具体如下:

  

  

命令模式,将来自客户端的请求封建为一个对象,无须了解这个请求激活的动作或有关接受这个请求的处理细节。命令模式的根本目的在于将“请求者”与“实现者”之间解耦。

  

  

<强> 1模式分析

  

我们借用邮局发信来说明这一模式。

  

癑ava基于命令模式实现邮局发信功能详解"

  

<强> 2命令模式静态类图

  

癑ava基于命令模式实现邮局发信功能详解"

  

<强> 3代码示例

  

3.1信件接收者接口一IReceiver

        包com.demo.receiver;/* *   *信件接收者接口   *   * @author   *   */IReceiver{公共接口/* *   *收件人收到信件读取   *   * @param消息   */公共空间readMail(字符串消息);   }      之前      

3.2信件接收者一接收器

        包com.demo.receiver;/* *   *信件接收者   *   * @author   *   */公共类接收机实现IReceiver {/* *   *收件人收到信件读取   *   * @param消息   */公共空间readMail(字符串消息){   system . out。println(“收件人读取信件:”+消息);   }   }      之前      

3.3邮局接口一IPost

        包com.demo.command;/* *   *邮局接口   *   * @author   *   */公共接口IPost {/* *   *邮局发送信件   *   * @param消息   */公共空间sendMail(字符串消息);   }      之前      

3.4邮局实现一篇文章

        包com.demo.command;   进口com.demo.receiver.IReceiver;/* *   *邮局实现类   *   * @author   *   */公共类帖子实现IPost {//收信人对象实例   私人IReceiver接收机最终方案;/* *   *构造方法传入收信人对象实例   *   * @param接收机   */公共职位(IReceiver接收机){   这一点。接收机=接收机;   }/* *   *邮局发送信件   *   * @param消息   */@Override   公共空间sendMail(字符串消息){   System.out.println(“邮局将信件发给收信人…”);//邮局发送信件给收信的人   this.receiver.readMail(消息);   }   }      之前      

3.5消息发送者一调用程序

        包com.demo.invoker;   进口com.demo.command.IPost;/* *   *发信人   *   * @author   *   */公共类调用程序{//邮局私有属性   私人IPost职位;/* *   *设置邮局对象实例   *   * @param帖子   */公共空间setPost (IPost post) {   这一点。邮政=邮政;   }/* *   *发信人发送信件   *   * @param消息   */公共空间postMail(字符串消息){   System.out.println(“发信人投递信件给邮局…”);   this.post.sendMail(消息);   }   }      之前      

3.6让邮局开始工作一客户

        包com.demo;   进口com.demo.command.IPost;   进口com.demo.command.Post;   进口com.demo.invoker.Invoker;   进口com.demo.receiver.Receiver;/* *   *客户端应用程序   *   * @author   *   */公共类客户{/* *   * @param arg游戏   */公共静态void main (String [] args) {//创建一个收信人对象实例   接收机接收=new接收机();//创建一个邮局对象实例传入收信人对象实例   IPost帖子=新职位(接收器);//创建一个发信人对象实例传入邮局对象实例   调用程序调用程序=new调用程序();//设置邮局   invoker.setPost (post);//发信人开始发送信息! ! !   invoker.postMail(“你好!好久不见,最近工作忙吗?”);   }   }      之前      

<强> 4运行结果

  
  

发信人投递信件给邮局……
  邮局将信件发给收信的人……
  收件人读取信件:你好!好久不见,最近工作忙吗?

     

  

1“开-闭”原则

  

2最少知识原则

  

  

癑ava基于命令模式实现邮局发信功能详解"

Java基于命令模式实现邮局发信功能详解