これはやや設計上の問題です。分野横断的な問題を処理するためにデコレータ パターンを使用しています。これらの懸念事項の 1 つは検証です。私が見た例のほとんどは、次のようなことを行います。
IAccount account = new AccountValidator(new Account());
account.Deposit();
バリデーターの実装は次のようになります。
if (!IsValid)
throw new NotValidException();
非常に単純化されていますが、うまくいけばアイデアが得られます。
これは悪い慣行であるという印象を受けました (私は間違っている可能性があります。それが私の質問の核心です - これは悪い習慣ですか?) このケースは実際には例外ではありません。これはかなり典型的でわかりやすいユーザー入力エラーです。
ただし、この種の状況を回避する方法を知っている唯一の方法は、すべてのサービス メソッドを設計して、応答データを含む何らかの標準化されたオブジェクトを返すことです。たとえば、account.Deposit() は、 NotValidResponse などの多くの可能なクラスによって実装される IResponse を返します: IResponse...
考え?