違い

2016-05-05 8 views
1

はシールクラスでプライベートコンストラクタを使用する理由があるだから何違い

public sealed class A 
{ 

} 

public sealed class B 
{ 
    private B() 
    {} 
} 

の違いはあります

答えて

4

二つのことはにある、接線方向です1つは他から無関係であると言う。

  • 封印されたクラスは、プライベートコンストラクタを持つ
  • クラスをパブリックにintantiatedすることはできません継承することはできません。

だから何が恐らくシールクラスでSingletonの実装を

をプライベートコンストラクタを使用する理由です。 (それはsealed)それを継承するポイントはありませんし、devsが新しいインスタンスをインスタンス化したい(あなたは彼らがSingletonインスタンスを使用したい)

+0

クラスが新しいインスタンスを作成するファクトリメソッドを持っている場合、それはシングルトンではないかもしれません。 – TomTom

+0

@TomTom工場の場合は、それをインスタンス化する手段が必要です。 – Jamiec

+0

+1、ちょっとメモ、古いコードで私はプライベートなコンストラクタで密閉されたクラスが静的クラス(そのバージョン1のC#が不足している)に使われているのを見ました。 –