Request-Response 模式采用的设计模式是什么?给个C代码
时间: 2023-03-21 22:00:29 浏览: 230
c#设计模式(有源代码)
Request-Response模式是一种常见的通信模式,用于在分布式系统中进行进程之间的通信。其主要特点是:发送方发送请求消息并等待接收方的响应消息。这种模式通常使用客户端-服务器模型,其中客户端发出请求,服务器则响应请求并返回响应消息。
常见的设计模式之一是请求者模式(Requester pattern),也称为命令模式(Command pattern),它定义了一个用于封装请求的对象,并将请求的参数与接收者对象解耦。
下面是一个使用请求者模式的简单C代码实现:
```c
#include <stdio.h>
// 请求者接口
typedef struct {
void (*execute)(void);
} Command;
// 接收者
typedef struct {
void (*action)(void);
} Receiver;
// 请求者实现
typedef struct {
Command command;
Receiver *receiver;
} ConcreteCommand;
void execute(ConcreteCommand *command) {
command->receiver->action();
}
// 接收者实现
void action() {
printf("Action performed\n");
}
int main() {
// 创建接收者和请求者
Receiver receiver = { action };
ConcreteCommand command = { { execute }, &receiver };
// 执行请求
command.command.execute();
return 0;
}
```
在上述代码中,Command是请求者接口,定义了execute方法,而ConcreteCommand是请求者实现,包含了一个Command接口和一个指向接收者的指针。Receiver是接收者接口,定义了一个action方法。最后,我们在main函数中创建了一个接收者和一个请求者,并执行了请求。
当我们运行这个程序时,它会输出一条消息,表示“Action performed”,这表明请求者已成功执行了请求,并调用了接收者的方法。
阅读全文