singleton patternとは
プロジェクト内にたった1つだけ存在しなければならないインスタンスがある可能性があります。例えば、学校といえば、学校には多くの生徒がいますが、学校自体は一つだけ存在しなければなりません。 会社も同じ。
会社には複数の部署が存在しますが、会社は1つの会社しか存在しません。 学校や会社が何度もnew()された時、複数のインスタンス変数を持つようになって問題が発生することを防止するために singletone patternを使用します。
singleton patternでは、あらかじめ生成されているインスタンスをpublic getMethod()を通じて取得して使用します。
singleton pattern方法
package singleton;
import java.util.Calendar;
public class Company {
// 内部でInstanceを生成
private static Company instance = new Company();
// privateな constructor
private Company() {}
// 唯一なInstanceをget()
public static Company getInstance() {
if ( instance == null) {
instance = new Company();
}
return instance;
}
}
constructorはprivateにします。
private constructoの場合、外部からインスタンスを生成できないため、内部からnewしてインスタンスを生成します。
そして外部で唯一のオブジェクトを参照できるPublic static get Methodを生成!
100度呼んでも同じオブジェクトを返還します。(参照値が全部同じ!)