在将异步服务器连接到数据库时使用哪种设计模式
本文关键字:设计模式 数据库 异步 服务器 连接 | 更新日期: 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上做了一个简短的搜索以确保我没有完全失去理智后想到的。