2016-06-02 2 views
0

나는 외관 패턴에 대한 MSDN 기사를 살펴 보았습니다. https://msdn.microsoft.com/en-us/library/orm-9780596527730-01-04.aspx#Anchor_0파사드 패턴의 파사드 클래스는 정적이어야합니까?

외관이 정적 클래스로 된 이유를 찾지 못했습니다. 정적 변수를 사용하여 서브 시스템 클래스의 인스턴스를 보유한 이유는 무엇입니까? 왜 그들은 정적 방법을 사용 했습니까? 나는 그 이유를 알고 싶다.

다음은이 기사의 정적 코드 섹션입니다. 기사 전체에서 전체 코드를 찾을 수 있습니다.

public static class Facade 
{ 
    static SubsystemA a = new SubsystemA(); 
    static SubsystemB b = new SubsystemB(); 
    static SubsystemC c = new SubsystemC(); 

    public static void Operation1() { 
     Console.WriteLine("Operation 1\n" + 
      a.A1() + 
      a.A2() + 
      b.B1()); 
    } 

    public static void Operation2() { 
     Console.WriteLine("Operation 2\n" + 
      b.B1() + 
      c.C1()); 
    } 
    } 

답변

4

정적 일 필요는 없습니다. 이 예제에서는 단지 발생합니다. 외관은 단순한 패턴입니다. 당신은 쉽게 정면 인 정규 수업을 쉽게 가질 수 있습니다. 요구 사항은보다 복잡한 클래스 및 메소드 세트에 단순화 된 액세스를 제공한다는 것입니다. 한 세트의 셋업을 필요로하고 일반적으로 원하는 최종 출력을 얻기 위해 여러 메소드 호출을 필요로하는 3 가지 또는 다른 클래스의 인스턴스를 작성하는 대신 facade 클래스는 프로그래머를위한 모든 작업을 수행하여 단순화 된 단일 클래스 참조와 단일 (또는 철저히 적은) 함수 호출을 제공합니다.

일반적으로 정면은 일반적으로 여러 단계를 검색해야하는 데이터로 가정합니다. 이전에 사용 된 입력 매개 변수를 확인하거나 미리 정의 된 기본 데이터를 사용하는 알고리즘을 통해 수행 할 수 있습니다.