什么OOD设计模式应该用于服务器-处理-客户端请求

What OOD design pattern should be used for a server-handle-client request ?

本文关键字:-处理 客户端 请求 服务器 用于 OOD 设计模式 什么      更新时间:2023-10-16

对于服务器-处理-客户端请求应该使用什么OOD设计模式?

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

消息交换模式(MEP)描述了通信协议建立或使用通信通道所需的消息模式。有两种主要的消息交换模式——请求-响应模式和单向模式。例如,HTTP是请求-响应模式协议,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"

我希望这有帮助,问候,

您是否想使用UDP(单向),HTTP(无状态请求-响应)或其他机制取决于您的应用程序的行为。在需要实时消息传递(如算法交易)的情况下,UDP是发送数据包的时间变得更重要的数据包可靠性的首选。HTTP是web应用程序的发展方向。然而,这些都是消息传递协议。在应用程序层面上,我有一些想法。在客户机-服务器应用程序中,通常有许多客户机试图访问同一台服务器。因此,您的服务器应用程序应该能够并行响应多个客户机。因此,在应用程序级别上,您应该维护一个线程池,并且每个客户机请求都应该在线程池中的一个线程中处理。阅读链接,了解使用线程池而不是为每个客户端请求创建线程的更多好处。