一模式定义
命令模式,将来自客户端的请求封建为一个对象,无须了解这个请求激活的动作或有关接受这个请求的处理细节。命令模式的根本目的在于将"请求者"与"实现者"之间解耦。
二模式举例
1模式分析
我们借用邮局发信来说明这一模式。
2命令模式静态类图
3代码示例
3.1信件接收者接口一IReceiver
package com.demo.receiver; /** * 信件接收者接口 * * @author * */ public interface IReceiver { /** * 收件人收到信件读取 * * @param message */ public void readMail(String message); }
3.2信件接收者一Receiver
package com.demo.receiver; /** * 信件接收者 * * @author * */ public class Receiver implements IReceiver { /** * 收件人收到信件读取 * * @param message */ public void readMail(String message) { System.out.println("收件人读取信件:" + message); } }
3.3邮局接口一IPost
package com.demo.command; /** * 邮局接口 * * @author * */ public interface IPost { /** * 邮局发送信件 * * @param message */ public void sendMail(String message); }
3.4邮局实现一Post
package com.demo.command; import com.demo.receiver.IReceiver; /** * 邮局实现类 * * @author * */ public class Post implements IPost { // 收信人对象实例 private final IReceiver receiver; /** * 构造方法传入收信人对象实例 * * @param receiver */ public Post(IReceiver receiver) { this.receiver = receiver; } /** * 邮局发送信件 * * @param message */ @Override public void sendMail(String message) { System.out.println("邮局将信件发给收信人..."); // 邮局发送信件给收信人 this.receiver.readMail(message); } }
3.5消息发送者一Invoker
package com.demo.invoker; import com.demo.command.IPost; /** * 发信人 * * @author * */ public class Invoker { // 邮局私有属性 private IPost post; /** * 设置邮局对象实例 * * @param post */ public void setPost(IPost post) { this.post = post; } /** * 发信人发送信件 * * @param message */ public void postMail(String message) { System.out.println("发信人投递信件给邮局..."); this.post.sendMail(message); } }
3.6让邮局开始工作一Client
package com.demo; import com.demo.command.IPost; import com.demo.command.Post; import com.demo.invoker.Invoker; import com.demo.receiver.Receiver; /** * 客户端应用程序 * * @author * */ public class Client { /** * @param args */ public static void main(String[] args) { // 创建一个收信人对象实例 Receiver receiver = new Receiver(); // 创建一个邮局对象实例 传入收信人对象实例 IPost post = new Post(receiver); // 创建一个发信人对象实例 传入邮局对象实例 Invoker invoker = new Invoker(); // 设置邮局 invoker.setPost(post); // 发信人开始发送信息!!! invoker.postMail("你好!好久不见,最近工作忙吗?"); } }
4运行结果
发信人投递信件给邮局...
邮局将信件发给收信人...
收件人读取信件:你好!好久不见,最近工作忙吗?
三该模式设计原则
1"开-闭"原则
2最少知识原则
四命令模式静态类图
相关推荐
Java基于命令模式实现邮局发信功能详解 命令模式是 Java 中的一种设计模式,它将来自客户端的请求封装成一个对象,无须了解这个请求激活的动作或有关接受这个请求的处理细节。命令模式的根本目的在于将"请求者"与...
JMail是一款在VB环境中广泛使用的邮件发送组件,它允许开发者通过编程的方式发送电子邮件,包括SMTP(简单邮件传输协议)和POP3(邮局协议)等服务。 【描述】"jmail发信VB很实用的源码,精心挑选的精品源码"暗示了...
16. 局域网工作模式:局域网有两种常见工作模式,对等模式(P2P)和客户服务器模式。 17. 电子邮件发送:Outlook Express使用SMTP协议将邮件发送到邮局服务器。 18. IP地址:合法的IP地址由四个0-255的数字组成,...
它分为两种模式:主动模式和被动模式。FTP服务器提供文件,而FTP客户端请求并接收文件。FTP协议包括控制连接和数据连接,控制连接用于发送命令和响应,数据连接则用于实际的文件传输。 3. **远程登录(Telnet)**:...
材料一:昆明市邮政局营销模式转变及营销体系建设的进一步完善和提升.doc
内蒙古自治区邮政局投递员工满意度调查研究,李浩,武晓岛,目的 分析内蒙古邮政局投递员工满意度现状,可以为内蒙古自治区乃我国邮政的发展提供一些有益的帮助。方法 采用多阶段分层整群抽�
Direct模式是最简单的模式,类似于邮局的信件分发。消息发送者(Producer)定义一个路由键(Routing Key),接收者(Consumer)定义一组绑定键(Binding Key)。当路由键与绑定键完全匹配时,消息会被传递到相应的...
设置完成后,需要再次运行`Get-TransportServer`命令来确认新的邮局主管地址已经被成功设置。 **步骤操作:** 1. **打开Exchange命令行管理程序:** - 同上。 2. **运行命令验证设置:** - 输入以下命令: ``` ...
这种模式虽然灵活,但可能带来库存管理的挑战,如空间限制、商品安全和发货效率等问题。 在物流选择上,有四种主要方式:邮局发货、快递发货、货运发货和综合考虑各种因素后的最优决策。邮局发货因其网点遍布全国,...
网络编程是IT领域中的一个重要部分,它涉及到计算机之间的通信,其中POP3(Post Office Protocol version 3)邮局协议是电子邮件系统中用于接收邮件的标准协议。本文将深入探讨POP3协议,以及如何使用C++和Winsocks...
观察者模式通常的叫法叫做订阅-发布模式,类似于报刊杂志的订阅,观察者和被观察者就是读者和邮局的关系,读者先要在邮局订阅想要的报刊,当报刊发行时,邮局会将报刊邮寄到读者家里。观察者(Observer)和被观察者...
研究采用了创新的教学模式——结合情景模拟和改良版Mini-CEX量表,以提升新入职护士的理论知识和实践能力。Mini-CEX量表原本用于评估临床医生的技能,经过改良后在护士护理技能评价中展现出更高的全面性和客观性。 ...
地级市-1984年邮局数和固定电话数已整理好,可用做工具变量 地级市-1984年 邮局数和固定电话数已整理好,可用做工具变量 地级市-1984年邮局数和固定电话数 已整理好,可用做工具变量 地级市-1984年邮局数和固定电话...
《公司管理全套制度——报刊邮发管理规定》是企业内部管理的重要组成部分,旨在规范公司对报刊的订阅、分发及邮发工作的操作流程,确保信息流通的高效与规范。以下是对该规定的主要内容的详细解释: 1. **第一条**...
在互联网经济下,众包已经被运用于各行各业中,法國邮局的运营改革,IBM的内部管理改革,印度农产品市场的新模式,美国Snapt ee的T恤众包设计,美国赛利诺斯葡萄酒庄园的用户自定酿制过程,国内的乌云众测平台,赚...
例如,邮政通信系统可以作为一个类比,邮局作为实体,通过信封(接口)传递信息,而收件人不需要知道信是如何从发件人那里传递过来的。 网络通常采用分层设计,如图3-1所示,展示了具有五层协议的网络体系结构。...
本压缩包"ASP.NET源码——电子邮件模块发送接收源码.zip"包含了电子邮件模块的源代码,这对于学习和理解如何在ASP.NET环境中实现邮件的发送和接收至关重要。 在ASP.NET中,发送电子邮件通常涉及到System.Net.Mail...
特色预览支持发送的邮局有(163,qq,gmail,yahoo,aol,pchome和自定义企业邮局等 (说明:网易163,yahoo的邮箱要开通smtp后才能发送支持批量发送,自动换IP(ADSL或路由器)功能 支持本地图片的发送模式(jpg,gin,bmp格式 ...
在这个课程设计中,学生通常会学习如何构建一个基本的电子邮件服务,从而理解网络协议如SMTP(简单邮件传输协议)、POP3(邮局协议)或IMAP(因特网消息访问协议)的工作原理。 首先,SMTP是用于发送邮件的主要协议...