C# Фасад (Facade)

2075 / 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