本文实例讲述了Java基于命令模式实现邮局发信功能。分享给大家供大家参考,具体如下:
命令模式,将来自客户端的请求封建为一个对象,无须了解这个请求激活的动作或有关接受这个请求的处理细节。命令模式的根本目的在于将“请求者”与“实现者”之间解耦。
<强> 1模式分析强>
我们借用邮局发信来说明这一模式。
<强> 2命令模式静态类图强>
<强> 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最少知识原则
Java基于命令模式实现邮局发信功能详解