singletom単例モードによる自分のjava基礎知識の反省
1042 ワード
もとは理解した単例はとてもあいまいで、今日たまに単例に対する説明を見て、茅塞顿開は記念に何かを書くべきだと思っています.
≪単一モード|Single Mode|emdw≫:クラスにインスタンスが1つしかないことを保証し、グローバル・アクセス・ポイントを提供します.
概念に対して2つの点に注目すべきである.
1.クラスに1つのインスタンスのみ
1つのクラスに1つのインスタンスしかないのは,単例の餓漢式コードで分かる.
このパターンの真髄をよく理解できればjavaのいくつかのコアの概念を理解する必要があります
1.privateの使い方
2.staticの使い方
privateアクセス権限は、このクラスでのみアクセスできます.これは最も厳しいアクセス条件ですが、他のクラスのアクセスを制御することが最大のメリットです.private制御の属性定義の変更を回避し、メソッド呼び出しの制限を回避します.クラスを継承してもできません.
staticメソッドははっきり言ってnewオブジェクトを使わずに直接オブジェクトを使用する方法で、staticのものは彼にもう一つの最高の特性staticの変数としてグローバルな変数とすることができる(注:javaにはグローバル変数の概念がなく、staticによってグローバル変数の特徴を変相することができる).
したがって、以上の説明を総合すると、new Singleton()を外部に作成することはできません.Singletonが多くないことを保証します.また、staticはメモリが1つのストレージスペースしか開かないことを保証します.
≪単一モード|Single Mode|emdw≫:クラスにインスタンスが1つしかないことを保証し、グローバル・アクセス・ポイントを提供します.
概念に対して2つの点に注目すべきである.
1.クラスに1つのインスタンスのみ
1つのクラスに1つのインスタンスしかないのは,単例の餓漢式コードで分かる.
public class Singleton {
private static Singleton uniqueInstance = new Singleton();
private Singleton(){
}
public static Singleton getInstance(){
return uniqueInstance;
}
}
このパターンの真髄をよく理解できればjavaのいくつかのコアの概念を理解する必要があります
1.privateの使い方
2.staticの使い方
privateアクセス権限は、このクラスでのみアクセスできます.これは最も厳しいアクセス条件ですが、他のクラスのアクセスを制御することが最大のメリットです.private制御の属性定義の変更を回避し、メソッド呼び出しの制限を回避します.クラスを継承してもできません.
staticメソッドははっきり言ってnewオブジェクトを使わずに直接オブジェクトを使用する方法で、staticのものは彼にもう一つの最高の特性staticの変数としてグローバルな変数とすることができる(注:javaにはグローバル変数の概念がなく、staticによってグローバル変数の特徴を変相することができる).
したがって、以上の説明を総合すると、new Singleton()を外部に作成することはできません.Singletonが多くないことを保証します.また、staticはメモリが1つのストレージスペースしか開かないことを保証します.