複数のオブジェクトのメソッドを決まった手順で実行する処理がある場合、Facadeオブジェクトで手順を実行するメソッドとすることで、シンプルなインターフェイスを提供する目的。
プログラミングで関数(メソッド)やサブルーチンを作る目的と同じ感じですが、GOFのパターンですのでオブジェクトを使うことが前提になるのかもしれません。
サンプルコード
/// <summary>
/// Facadeパターンのサンプル
/// </summary>
class Subsystem1
{
public void Operation1()
{
Console.WriteLine("SubSystem1.Operation1()");
}
}
class Subsystem2
{
public void Operation2()
{
Console.WriteLine("SubSystem2.Operation2()");
}
}
class Mainsystem
{
Subsystem1 _sub1;
Subsystem2 _sub2;
public Mainsystem()
{
_sub1 = new();
_sub2 = new();
}
public void FacadeMethod()
{
_sub1.Operation1();
_sub2.Operation2();
}
}
class Program
{
static public void Main()
{
var obj = new Mainsystem();
obj.FacadeMethod();
}
}
コメント