Прямое сообщение на основе контента другому классу - PullRequest
0 голосов
/ 10 июля 2020

У меня следующий сценарий:

Я получаю сообщения через порт (например, последовательный COM-порт). Каждое сообщение имеет заголовок, который используется для проверки того, кому принадлежит сообщение.

Предположим, что заголовок состоит только из одного байта, и этот байт должен использоваться для «пересылки» сообщения объекту.

Один пример:

Header -> Receiver
0x00 -> Object A
0x01 -> Object B
...

В настоящее время я решил это таким образом, что у меня есть объект, который, например, владеет портом для получения сообщений (например, jSerialCom). Назовем его «портовый объект». Я сделал это одно наблюдаемым, и каждый объект, который может быть получателем, наблюдает за ним.

Как только сообщение будет получено, объект порта проинформирует всех наблюдателей о полученном сообщении, и они должны сами решить, сообщение связано с ними или нет.

Я чувствую, что это не лучшее решение, и спрашиваю, считаете ли вы, что существует лучший подход.

1 Ответ

0 голосов
/ 10 июля 2020

Сделайте так, чтобы объект порт поддерживал карту наблюдателей. Ключ карты - это байт заголовка [message], а значение карты - это список наблюдателей, которые хотят получать уведомления, когда объект порта получает сообщение с этим байтом заголовка.

...