Эффективно реализовать существующий протокол - PullRequest
1 голос
/ 12 декабря 2010

У меня есть протокол, для которого я хотел бы написать клиент Java. Протокол состоит из сообщений, имеющих заголовок, содержащий тип сообщения и длину сообщения, а затем объявленное количество байтов, которое является полезной нагрузкой. У меня возникли некоторые проблемы с его моделированием, поскольку создание класса для каждого типа сообщений кажется мне несколько чрезмерным (это может оказаться более 20 классов для представления сообщений, передаваемых по проводам). Я думал об альтернативных моделях. , Но я не могу придумать тот, который работает.

Я не хочу, чтобы над сообщениями работало что-то необычное, кроме уведомления посредством публикации подписки, когда приходит сообщение, а в некоторых случаях он отвечает.

Какие-нибудь указатели относительно того, где искать?

1 Ответ

3 голосов
/ 12 декабря 2010

Класс для каждого типа сообщений является естественным способом моделирования этого.Тот факт, что есть 20 классов, не должен вас отталкивать.(В зависимости от взаимосвязи между сообщениями, вы, вероятно, можете реализовать обычные функции в суперклассах.)

Мой совет - не слишком беспокоиться об эффективности для начала.Просто сосредоточьтесь на получении чистых API, которые обеспечивают необходимую функциональность.Как только у вас все заработает, профилируйте код и посмотрите, являются ли классы протоколов существенным узким местом.Если они ... , то подумайте, как сделать код более эффективным.

...