私はかなり長い間この分野に携わってきたと思いたいのですが、単純なことで自問自答することがあります...クラスが持つ責任、SRP、およびそのタイプのことを決定します。
つまり、メッセージング システムのコンテキストでは、次のようになります。
Message m = new Message();
// Some properties set
m.Send();
また
Message m = new Message();
// Some Message properties set...
MessagingSystem ms = new MessagingSystem();
ms.SendMessage(m);
Controller/Manager タイプのクラスを使用していますか? そうでない場合、メッセージはどのようにして自分自身を送信する方法を知ることができますか?