Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将异步服务器连接到数据库时使用哪种设计模式?_C#_Database_Design Patterns_Asynchronous - Fatal编程技术网

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

C# 将异步服务器连接到数据库时使用哪种设计模式?,c#,database,design-patterns,asynchronous,C#,Database,Design Patterns,Asynchronous,我已经使用TcpListener类实现了一个异步TCP服务器。(异步意味着它是非阻塞的)。它接受多个客户端连接,读取数据并提供回调。服务器接收的消息本质上是需要解析的命令,并且需要对数据存储结构执行操作。让我们将此服务器称为 Class MyTcpServer (with ReadCallback) 存储结构打包为 Class MyDatabase(带有添加、删除和搜索方法) 这是一个多线程应用程序,该数据库最终也将向系统的其余部分公开 我的问题是,我应该采取什么设计方法来连接MyTcpSer

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

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感兴趣

免责声明:这是我读了你的问题陈述,做了一个非常简短的维基搜索,以确保我没有完全失去理智后,突然想到的