オブジェクト構築せずにFacade.Instanceメソッドを使用する方法?
-
13-09-2019 - |
質問
私は最近、ソフトウェアパターンのユニットを完了し、現在PureMVCのフレームワークを理解しようとしています。一つは、私は、しかし困惑ここ達人に簡単な何かを持ってます。
私はシングルトンファサードクラスのインスタンスを作成しようとしています。コンストラクタでは、コメントの状態:
ファサードオブジェクトも作成されていないとき、このIFacadeの実装はシングルトンであるので、あなたが直接コンストラクタを呼び出すが、その代わりに、静的なシングルトンファクトリメソッドFacade.Instanceを呼び出してはいけません。
どのようにして、インスタンスメソッドを呼び出すことができますか?
Facade.Instance方法は次のようになります:
public static IFacade Instance
{
get
{
if (m_instance == null)
{
lock (m_staticSyncRoot)
{
if (m_instance == null) m_instance = new Facade();
}
}
return m_instance;
}
}
解決
あなたは、静的プロパティにアクセスしています。静的プロパティは、クラス定義の一部ではなく、クラスのインスタンスです。静的メンバ(プロパティ、フィールド、メソッド)にアクセスするには、単にクラス名ドットメンバーを使用します:
var myFacade = SomeClass.Instance;
所属していません StackOverflow