Javaのデザインパターン:シングルトン
定義シングルトン(シングルトン)モード:インスタンス自体のモデルを作成する唯一のクラスのインスタンス、及びクラスを指します。
意図:クラスのインスタンスを1つだけ確実にし、それをアクセスするためのグローバルアクセスポイントを提供します。
主に解決するために:頻繁に作成し、破壊するために使用グローバルクラスを。
Singletonパターンは、以下のステップを実装します:
1.クラスの唯一のインスタンス
あなたはコンストラクタは、公開できないようにインスタンスを1つだけ実行したい場合は、それはプライベートです。クラスのコンストラクタそれが公開されている場合、それはインスタンスを作成するために)新しいSingleObject(の方法によることができるので、そのインスタンスを1つだけ保証することはできません
例は、生成2
コンストラクタがプライベートで、その後、唯一のクラスのコンストラクタSingleObjectクラスにアクセスすることができ、あなただけのSingleObjectに独自のインスタンスを生成するコンストラクタメソッドを呼び出すことができます
プライベート SingleObjectインスタンス= 新しい SingleObject();
3.グローバルは、唯一のアクセスポイントであります
上記の文が生成されたインスタンスのインスタンスでしたが、インスタンスがプライベートで、クラスのメンバーのみがSingleObjectにアクセスすることができ、これは一貫性がない場合、インスタンスのgetInstance()を返すための新しい方法です。もう一つのポイントは、準拠していない:彼は唯一のオブジェクトを生成することができますのでこと、静的なキーワードのための新しい方法、その後、それぞれの呼び出し方法は、バックつのインスタンスになりますこれは一貫していません。
パブリック 静的SingleObjectのgetInstance(){ 戻りインスタンス。 }
4.静的メソッドのみアクセスでき、静的メンバ変数
そして、メンバ変数として、静的なキーワードを追加
プライベート 静的 SingleObjectインスタンス= 新しい SingleObject();
ここでは、シングルトンのコードです
パブリック クラスSingleObject { // 静的メソッドのみアクセスでき、静的メンバ変数 プライベート 静的の SingleObjectインスタンス= 新しいSingleObject(); // それはそれぞれの新しい世代のためのオブジェクトがオブジェクトを持っていることをパブリックそうであればあるため、コンストラクタは、プライベートである理由、シングルトンパターンを満たしていません。あなたは)新しい新しい= SingleObjectインスタンスSingleObjectを(使用することはできませんので、 プライベートSingleObject(){} // その後、リフレクションクラスのメソッドを使用して静的メソッドでオブジェクトを生成し、メソッドの名前を呼び出します。あなたは、それがクラスのオブジェクトを生成し、オブジェクトにそれを返し、オブジェクトを生成するために、すべてのメソッドを呼び出すことはできません。 公共の 静的SingleObjectのgetInstance(){ 戻り値のインスタンス; } パブリック 無効showMessage(){ System.out.printlnは( "Hello Worldの!" ); } }