最近、私はTDDの方法論に従おうとしていますが、これにより多くのサブクラスが作成され、依存関係などを簡単に模倣できるようになります。
たとえば、、、などのように適用できるメソッド/操作があると言うことができますRecurringProfile
。TDDにより、これらはなどのような「小さな」クラスとして実装されます。MarkAsCancel
RenewProfile
MarkAsExpired
MarkAsCancelService
RecurringProfile
たとえば、クラスを持つなどで実行できるさまざまなメソッド/操作の「ファサード」(シングルトン)を作成することは意味がありますかRecurringProfileFacade
?これには、コードを実際のサブクラスに委任するメソッドが含まれます。例:
public class RecurringProfileFacade
{
public void MarkAsCancelled(IRecurringProfile profile)
{
MarkAsCancelledService service = new MarkAsCancelledService();
service.MarkAsCancelled(profile);
}
public void RenewProfile(IRecurringProfile profile)
{
RenewProfileService service = new RenewProfileService();
service.Renew(profile);
}
...
}
上記のコードは実際のコードではなく、実際のコードはコンストラクターによって挿入された依存関係を使用することに注意してください。この背後にある考え方は、そのようなコードの利用者は、呼び出す必要のあるクラス/サブクラスに関する内部の詳細を知る必要はなく、それぞれの「ファサード」にアクセスするだけであるということです。
まず第一に、これは「ファサード」パターンですか、それとも他の形式のデザインパターンですか?
上記が理にかなっている場合に続くもう1つの質問は、特定のビジネスロジック機能がないことを考慮して、そのようなメソッドの単体テストを実行しますか?