2017-04-06 4 views
1

私はhttps://github.com/VerbalExpressions/CSharpVerbalExpressionsて探していたし、そこに私はそこにクラスVerbalExpressionsと静的プロパティDefaultExpressionなぜpublic staticプロパティはオブジェクトを返しますか?

public class VerbalExpressions 
{ 
    public static VerbalExpressions DefaultExpression 
    { 
     get { return new VerbalExpressions(); } 
    } 
} 

され、オブジェクトが私は

VerbalExpressions verbEx = VerbalExpressions.DefaultExpression; 

ように作成された、ことがわかりました初心者のC#プログラマーと私は理解しようとしています、なぜ彼らはこのようなオブジェクトを作成していますか?彼らは私が推測するシングルトンのパターンを実装していません。

このタイプの実装の原因は何ですか。誰でも助けてくれますか?

+4

It'sのようなシングルトンパターン、you're権のない適切な使用法を実装する必要があります。ただし、プロパティにアクセスするたびに新しいインスタンスが作成されます。 – HimBromBeere

+0

これは静的メソッド(アクセサ)です。インスタンスを作成する静的メソッドでは、何が起こるはずですか? – Vladimir

+3

@HimBromBeereは正しいですが、(少なくともIMOでは)プロパティではなくメソッドとしてそのようなロジックを実装し、 'CreateX'のような話題の名前を付ける方が良いと指摘したいと思います。私にとって、プロパティは、アクセスするたびに同じオブジェクトであることをプロパティが示唆しています。 –

答えて

-2

シングルトンパターンクラスは、この

public SingleTonClass { 
    private SingleTonClass instance; 

    public static GetInstance 
    { 
     get 
     { 
     if (instance == null) 
     { 
      instance = new SingleTonClass(); 
     } 

     return instance 
     } 
    } 
} 
+3

質問: "このタイプの実装の原因は何ですか?だれでも助けてくれますか?"、 "シングルトンを作成する方法"ではなく... –

+0

完全なアプリケーションでインスタンスの参照を1つだけ必要とする場合は、このタイプの実装があります。これは、App.Exampleで作成されるインスタンスがLoggerだけであることを保証します。ロガーインスタンスはシングルトンでなければなりません。 –

+2

これはコンパイルされますか?おそらく 'class'キーワードを省略しましたか?いずれにしても、コンストラクタをprivateにしないと、新しいインスタンスを作成してシングルトンを完全に実装することはできません。 –

関連する問題