Вероятно, существует не только черно-белое изображение, поэтому любой смешанный подход, который может быть неоптимальным и лучшим для каждого тела, в одних случаях может сработать, а в других - потерпеть неудачу.
Мое начальное соображение заключается в том, что если сообщение содержит только некоторые данные и может быть отправлено различными способами (асинхронно, синхронно ...) или по разным каналам (электронная почта, пейджер, wcf, tcp, факс, речь ...) тогда ответственность класса сообщений заключается только в том, чтобы хранить данные, и будут такие менеджеры, как MessagingManager
или другие классы, которые будут знать, что делать и как обрабатывать сообщение, как его отправлять и как его получать.
Как я уже сказал, вероятно, нет идеального или лучшего решения для каждого конкретного случая.