C# 将异步服务器连接到数据库时使用哪种设计模式?
我已经使用TcpListener类实现了一个异步TCP服务器。(异步意味着它是非阻塞的)。它接受多个客户端连接,读取数据并提供回调。服务器接收的消息本质上是需要解析的命令,并且需要对数据存储结构执行操作。让我们将此服务器称为C# 将异步服务器连接到数据库时使用哪种设计模式?,c#,database,design-patterns,asynchronous,C#,Database,Design Patterns,Asynchronous,我已经使用TcpListener类实现了一个异步TCP服务器。(异步意味着它是非阻塞的)。它接受多个客户端连接,读取数据并提供回调。服务器接收的消息本质上是需要解析的命令,并且需要对数据存储结构执行操作。让我们将此服务器称为 Class MyTcpServer (with ReadCallback) 存储结构打包为 Class MyDatabase(带有添加、删除和搜索方法) 这是一个多线程应用程序,该数据库最终也将向系统的其余部分公开 我的问题是,我应该采取什么设计方法来连接MyTcpSer
Class MyTcpServer (with ReadCallback)
存储结构打包为
Class MyDatabase
(带有添加、删除和搜索方法)
这是一个多线程应用程序,该数据库最终也将向系统的其余部分公开
我的问题是,我应该采取什么设计方法来连接MyTcpServer和MyDatabase?
我应该简单地创建一个名为classmsgprocessor
的singlton吗。此类将具有处理传入消息并将数据处理到MyDatabase
中的方法。然后可以在MyTcpServer
或
有更好的设计模式吗?您应该有一个MessageHandler类,它包含一个MyDatabase和一个MyTcpServer实例,并订阅了它的读取回调 此外,MessageHandler应该实现某种队列或池机制,以便以托管方式调用操作 然后,每次调用读取回调时,MessageHandler将首先解析并将其存储在队列中,然后再进行处理
这里不需要单例。您应该有一个MessageHandler类,它包含一个MyDatabase和一个MyTcpServer实例,并订阅了它的读取回调 此外,MessageHandler应该实现某种队列或池机制,以便以托管方式调用操作 然后,每次调用读取回调时,MessageHandler将首先解析并将其存储在队列中,然后再进行处理
这里不需要单身人士。我想在这种情况下,您可能会对使用a感兴趣
免责声明:在阅读了您的问题陈述并进行了非常简短的wiki搜索以确保我没有完全失控后,我突然想到了这一点。我想您会对在这种情况下使用a感兴趣 免责声明:这是我读了你的问题陈述,做了一个非常简短的维基搜索,以确保我没有完全失去理智后,突然想到的