今回は Sigleton パターン(一覧)。
Singleton パターンの登場人物
- @Singleton → 型
- @Instance → フィールド
- @GetInstance → メソッド
アノテーション定義
上記の定義の具体的な Java コード。
package org.waman.tools.design.gof.creational; import java.lang.annotation.*; public final class SingletonPattern { private SingletonPattern(){} @Target(ElementType.TYPE) public static @interface Singleton { @Target(ElementType.FIELD) public static @interface Instance {} @Target(ElementType.METHOD) public static @interface GetInstance {} } }
サンプルコード in 『Java 言語で学ぶデザインパターン入門』
Singleton.java
@Singleton 役のクラス。
import org.waman.tools.design.gof.creational.SingletonPattern; import org.waman.tools.design.gof.creational.SingletonPattern.Singleton.GetInstance; import org.waman.tools.design.gof.creational.SingletonPattern.Singleton.Instance; @SingletonPattern.Singleton public final class Singleton { @Instance private static Singleton INSTANCE = new Singleton(); private Singleton() { System.out.println("インスタンスを生成しました。"); } @GetInstance public static Singleton getInstance() { return INSTANCE; } }