GUI オブジェクトの単体テストを容易にするためにメディエーター パターンを使用しています。
疑似コード例:
Class MyGuiClass
{
//... Declare and initialize mediator to be a MyMediator
private void On_SomeButtonPressed()
{
mediator.SomeButtonWasPressed();
}
}
Class MyMeditator
{
public void On_SomeButtonPressed()
{
//.. Do something now that the button was pressed
}
}
Window を作成しなくても、SomeButton が押されたときに何が起こるかを単体テストできるようになったので、これは素晴らしいことです。
私が懸念しているのは、私が非公開のメソッドを採用し、Mediator を呼び出すすべての人のために公開したことです。過去にこれを行ったことがありますが、公開しなければならない方法があまりなかったので、気にしませんでした。
私は現在、このパターンを使用するために非常に大きなクラスをリファクタリングしています。 MyMediator を作成できるユーザーや、一部のメソッドが公開されているクラスの可視性を制御できる方法があるかどうか疑問に思っています。(これは不可能かもしれませんし、必要でさえないかもしれませんが、私は尋ねようと思いました。)
(私は .NET 3.5 SP1 で C# 3.0 を使用しています)