列挙型とは?
列挙型とは特定の値のみを持つ型。列挙型を定義するにはenumキーワードを使用して型を宣言します。
enum Sample{
A,
B,
c,
D
}
列挙型はEnumクラスを継承したfinalクラスとなり列挙した値はpublic static finalが自動でつきます。
また、values()とvalueOf()というstaticメソッドも自動的に追加されます。
明示的にインスタンス化できません。
デザインパターンとは?
簡単に言うと、解決策をパターン化しておくこと。
設計や製造をしているときに悩むことがありますよね。そんな時は試行錯誤して良い解決法を見つけます。
しかし、試行錯誤する前に別の人がうまく解決し共有できていたら、その問題はスムーズに解決できます。
それがデザインパターンです。
なんか代表的な奴は「オブジェクト指向における再利用のためのデザインパターン」(1995)という本に書いてある23個のパターンが有名らしい。
その中でも今回はシングルトンパターンを書いていく。
シングルトンパターンとは?
通常クラスはnewすることでオブジェクトを生成することができますが、あるクラスにおいては一つだけのオブジェクトが生成したいという場合が存在します。システムが稼働してる間にあるクラスのオブジェクトは一つしかありませんよという風に保証したいときなど。
そんなときにシングルトンパターンを使います。
シングルトンパターンのポイント
- instanceの変数…private static final
- コンストラクタ…private
- getInstanceメソッド…public static
これでgetInstancenメソッドを経由しなければオブジェクトを取得できないようになります。
マルチスレッドで使いたい場合は少し注意が必要で、ロジックメソッドにsynchronizedを付与すれば大丈夫