Этот вопрос более чем немного широкий / расплывчатый, поэтому я отвечу, основываясь на ответах на сообщения.
Вы могли бы пойти с шаблоном типа насоса, подобным тому, как работает Win32, где выкак правило, есть один метод, где вы обрабатываете сообщения с помощью оператора switch.Хотя, если он становится слишком большим, я бы поместил фактическую логику в отдельные методы, и этот единственный метод вызывал бы только тот метод, который подходит.
Другой шаблон, который является более "C # -esque", будет использовать событияпо одному на каждый тип сообщения.Вы также можете добавить общее MessageReceived
событие, которое будет запускаться для любого полученного сообщения, в дополнение к отдельным типам сообщений.