1.使用命令模式模拟邮局送信
时间: 2023-09-16 07:13:58 浏览: 59
命令模式是一种行为型设计模式,它允许将请求封装为对象,从而使得请求的发送者和接收者可以独立变化。在邮局送信的场景中,我们可以将邮局看作是请求的接收者,而寄信的人则是请求的发送者。具体实现步骤如下:
1. 定义命令接口(Command),该接口包含一个执行命令的方法 execute()。
```
public interface Command {
void execute();
}
```
2. 实现具体命令类(PostCommand),该类实现了命令接口,并在 execute() 方法中调用邮局的送信方法。
```
public class PostCommand implements Command {
private final PostOffice postOffice;
public PostCommand(PostOffice postOffice) {
this.postOffice = postOffice;
}
@Override
public void execute() {
postOffice.sendLetter();
}
}
```
3. 定义请求发送者(Sender),该类包含一个命令对象,可以设置和执行命令。
```
public class Sender {
private Command command;
public void setCommand(Command command) {
this.command = command;
}
public void send() {
command.execute();
}
}
```
4. 定义请求接收者(PostOffice),该类包含一个送信方法。
```
public class PostOffice {
public void sendLetter() {
System.out.println("邮局正在送信...");
}
}
```
5. 在客户端代码中使用命令模式。
```
public class Client {
public static void main(String[] args) {
PostOffice postOffice = new PostOffice();
Command postCommand = new PostCommand(postOffice);
Sender sender = new Sender();
sender.setCommand(postCommand);
sender.send();
}
}
```
在上述代码中,我们创建了一个邮局对象和一个具体命令对象 PostCommand,然后将该命令对象设置到请求发送者 Sender 中。最后,调用 Sender 的 send() 方法来执行命令,从而实现了邮局送信的功能。