在将异步服务器连接到数据库时使用哪种设计模式

本文关键字:设计模式 数据库 异步 服务器 连接 | 更新日期: 2023-09-27 18:02:31

我已经实现了一个异步TCP服务器使用TcpListener类。(异步意味着它是非阻塞的)。它接受多个客户端连接,读取数据,并提供回调。服务器接收的消息本质上是需要解析的命令,以及需要对数据存储结构采取的操作。我们把这个服务器命名为

Class MyTcpServer (with ReadCallback)

和存储结构打包为

Class MyDatabase(具有添加、删除、搜索方法)。

这是一个多线程应用程序,这个数据库最终也会暴露给系统的其他部分。

我的问题是我应该采取什么设计方法来接口MyTcpServer和MyDatabase?

我应该简单地创建一个名为Class MsgProcessor的单子吗?这个类将有方法来处理传入的消息并将数据操作到MyDatabase。然后可以在MyTcpServer上的任意ReadCallback()上调用这些方法

或有没有更好的设计模式?

在将异步服务器连接到数据库时使用哪种设计模式

你应该有一个MessageHandler类,它包含一个MyDatabase和一个MyTcpServer实例,并订阅它的读回调。

此外,MessageHandler应该实现某种队列或池机制,以便以托管的方式调用操作。

然后,每次调用读回调时,MessageHandler将首先解析并将其存储在队列中,然后再进行处理。

我想你会对在这种情况下使用命令模式感兴趣的。

免责声明:这是我在阅读了您的问题陈述并在wiki上做了一个简短的搜索以确保我没有完全失去理智后想到的。