Я реализовал Async TCP Server, используя класс TcpListener. (Асинхронный означает, что это не блокирует). Он принимает несколько клиентских подключений, читает данные по мере поступления и обеспечивает обратный вызов Сообщения, которые принимаются сервером, по сути являются командами, которые необходимо проанализировать, и необходимо предпринять действия со структурами хранения данных. Позволяет называть этот сервер как,
Class MyTcpServer (with ReadCallback)
и структуры хранения упакованы как
Class MyDatabase
(с добавлением, удалением, методами поиска).
Это многопоточное приложение, и эта база данных в конечном итоге будет доступна и для остальной системы.
Мой вопрос: какой подход к проектированию я должен использовать для взаимодействия MyTcpServer и MyDatabase?
Должен ли я просто создать синглтон под названием Class MsgProcessor
. Этот класс будет иметь методы для обработки входящих сообщений и обработки данных в MyDatabase
. Эти методы затем могут быть вызваны на любой ReadCallback()
на MyTcpServer
Или
Есть ли лучший дизайн шаблона?