gpt4 book ai didi

c++ - 服务器处理客户端请求应使用哪种 OOD 设计模式?

转载 作者:行者123 更新时间:2023-11-28 08:15:23 24 4
gpt4 key购买 nike

服务器-处理-客户端请求应使用哪种 OOD 设计模式?

我建议使用消息交换模式,它允许在组件和应用程序之间交换信息(即消息)。

消息交换模式 (MEP) 描述了通信协议(protocol)建立或使用通信 channel 所需的消息模式。有两种主要的消息交换模式——请求-响应模式和单向模式。例如,HTTP是一种请求-响应模式的协议(protocol),UDP是一种单向模式。

http://en.wikipedia.org/wiki/Messaging_pattern

我说得对吗?更好的想法?

谢谢

最佳答案

我非常熟悉基于 UDP 的客户端-服务器应用程序,因此我通常使用观察者模式,这在从网络接收数据包时非常有用。每当数据包来自远程机器时,套接字都会接收消息并将其广播给所有的监听器。然后,听众将对接收到的数据做任何他们想做的事情,如下例所示

public class MySocket {
private socket rawSocket;
private List<Listeners> dataListeners;
//.. Initialization
// This method gets called when data is received
public receive(byte[] data){
for(Listener listener : dataListeners) listener.processMessage(data);
}
public registerListener(Listener listener){
dataListeners.add(listener);
}
public unRegisterListener(Listener listener){
dataListeners.remove(listener);
}
}
// Interface listener to be implemented by whoever want to receive data from a socket
public interface Listener{
// Method to be implemented by any listener interested in receiving data
void ProcessMessage(byte[] data);
}
public class MyListener implements Listener{
@Override
public void processMessage(byte[] data){
// Do something with data...
}
}
// All bits put together
MySocket mySocket = new MySocket();
socket.registerListener(new MyListener());
// Class MyListener can now receive everything that comes from a remote machine through the socket "mySocket"

希望对你有帮助问候,

关于c++ - 服务器处理客户端请求应使用哪种 OOD 设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7863795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com