C# Шаблон Фасад (Facade)

 

Організовує роботу з кількома різними об'єктами до роби з одним фасадом 

Приховує складність системи

Фасад стежить за правильним порядком ініціалізації та взаємодії

Фасад - простий інтерфейс для роботи зі складною підсистемою

Фасад зі складної підсистеми вибирає лише потрібні вам "фічі"

 

public static void Main(string[] args)
{
  Facade facade = new Facade();
  facade.MethodA();
  facade.MethodB();

  Console.ReadKey();
}

public class SubSystem1
{
  public void Method1() {
    Console.WriteLine("--> SubSystem1 Method");
  }
}

public class SubSystem2
{
  public void Method2() {
    Console.WriteLine("--> SubSystem2 Method");
  }
}

public class SubSystem3
{
  public void Method3() {
    Console.WriteLine("--> SubSystem3 Method");
  }
}


public class Facade
{
  SubSystem1 one;
  SubSystem2 two;
  SubSystem3 three;

  public Facade() {
  one = new SubSystem1();
  two = new SubSystem2();
  three = new SubSystem3();
  }
  public void MethodA() {
    Console.WriteLine("\nFacade MethodA:");
    one.Method1();
    two.Method2();
  }
  public void MethodB() {
    Console.WriteLine("\nFacade MethodB:");
    two.Method2();
    three.Method3();
  }
}

 

 

Facade MethodA:
— SubSystem1 Method
— SubSystem2 Method
Facade MethodB:
— SubSystem2 Method
— SubSystem3 Method