2016-06-02 8 views
0

私はファサードパターンについてMSDNの記事を調べていました。 https://msdn.microsoft.com/en-us/library/orm-9780596527730-01-04.aspx#Anchor_0ファサードパターンのファサードクラスは静的である必要がありますか?

は、私は彼らがファサード静的クラス作られた理由を見つけるcouldntの?なぜ彼らはサブシステムクラスのインスタンスを保持するために静的変数を使用したのですか?彼らはなぜ静的メソッドを使用したのですか?私はその背後にある理由を知りたい。

以下は、その記事の静的コードセクションです。完全なコードは記事の中にあります。

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つの異なるクラスのインスタンスを作成するのではなく、通常は目的の最終出力を得るためにいくつかのメソッド呼び出しが必要な場合は、ファサードクラスがすべてプログラマのために行います。 1つの(または大幅に少ない)関数呼び出しが含まれています。

通常、ファサードは、通常は取得するために複数の手順が必要なデータを前提にしています。これは、以前に使用された入力パラメータを調べたり、あらかじめ定義された既定のデータを単に使用するアルゴリズムによって行うことができます。

関連する問題