Singletonパターン@Java言語で学ぶデザインパターン入門

Java画像

参考にした本

Singletonパターンとは?

参考書には以下のように記載されています。

インスタンスが1個しか存在いないことを保証するパターンをsingletonパターンと言います。

メリット

  • インスタンスが1個しか存在しないことを保証することができる

サンプルコード

今回クラス図は特にありません。

FruitsMakerクラス

singletonになるクラスです。

コンストラクタをprivateにすることでプログラマーが勝手にnewすることを防いでいます。

singletonクラス唯一インスタンスを得るメソッドとしてgetInstanceが用意されています。

synchronize 修飾子はマルチスレッド環境で正しく動作させるために必要です。

Mainクラス

実行結果

メリットの振り返り

①インスタンスが1個しか存在しないことを保証することができる

もしインスタンスが複数存在してしまったら、getNextFruitsで帰ってくる値が予測できません。

バナナ→バナナみたいな感じで出力されてしまうかもしれません。

このように制約をつけることによって、プログラミングしやすくなるメリットがあります。

いつsingletonのインスタンスは生成されるのか?

出力を見てください。

start.の後にインスタンスが生成されていることがわかります。

これは最初にgetInstanceした際にコンストラクタが呼ばれていることを意味しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


error: Content is protected !!