手順(検証、関連コンテンツの添付、フォーマット、送信)をより簡単にテスト、ログ記録、更新できる個別のクラスに分割することで、「メールの送信」コードをリファクタリングしようとしています。
この一環として、オペレーションが検証または一時的なエラー(「そのアイテムが削除された」)を発信者に通知して、ユーザーに詳細情報を要求したり、悪いニュースを伝えたりできるようにする方法を理解する必要があります。 。これがスレッドがたどるパスです(イェーイ、落書き)
"Controller"
. -> Outbox
. -> Validator
. -> Formatter
. -> Sender
. <-
-> Parameters, work in progress
<- Good, not so good, "you better sit down" news
それで、あなたは「リターン」、「例外」、または「コンテキスト」の間で思慮深い種類です…どれがあなたを幸せにしますか?
A.問題が発生した場合は例外をスローし、コントローラーに、正常に処理できるものと、私の「ブザー」を知っているものを分けさせます。
B.ある種のResultクラスを返し
<T>
、操作の結果(電子メール)とさまざまな操作の列挙された結果の両方を伝達します。C.処理できないパラメータを示し、メソッドのシグネチャを非常に単純に保つことができるすべてのステップにコンテキストを渡します。
D.息子、あなたはこれを考えすぎています..これがあなたがやろうとしていることです:
<
YourSpecialJujuHere/>
ありとあらゆる貢献に感謝します、あなたは一丸となって揺れ動きます。