Singleton
今回はSingletonの復習です。
Singletonパターンは
「インスタンスがひとつしかないようなクラス構造」です。
コレをどのように活用するかと言うと
「ソフトウェアの設定について記述しておくクラス」
などに使うことが挙げられます。
Singletonのポイントとしては、
「インスタンスがひとつしか存在しないことを保証する」
という点にあるでしょう。
「保証」とは
そもそもプログラマがそのクラスのインスタンスをたった一つしか生成しないように気をつけてれいば済むことです。
ですが、ヒューマンエラーというのはなくならないものなので、そこをプログラムで補ってやる、それがSingletonパターンというわけです。
説明と同じくSingletonパターンも至って単純で
・クラス固有の領域、staticな領域に自身のインスタンスを確保する。
・そのインスタンスを取得する関数を用意する
・外部からインスタンスを生成されないようにする。
これらを守ってクラスを作ればSingletonパターンの完成です。
Singletonパターンを使うときには、複数の環境からインスタンスを取得するような時に、注意が必要です。
複数の環境から同時にアクセスされるマルチスレッド環境では、複数のメソッドが同時にインスタンスを取得しようとして結果的にインスタンスが複数生成される場合があります。
このような場合、Singletonパターンから逸脱することになり、これが潜在的なバグの要因になり得ます。
ですから、環境に応じたコーディングが求められるパターンのようです。
また、このSingletonパターンについては否定的な意見もあります。
ただひとつしかないインスタンスがグローバル領域のように使用され、
それの使用法が様々な問題を孕むという事ですね。
たしかに、Singletonパターンが故にオブジェクト指向なプログラミングが阻害されてしまうというのはあってはならないことです。
使うときは細心の注意を払って使うことが必要なようです。
参考文献
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (397件) を見る
- 作者: 近藤博次
- 出版社/メーカー: ソフトリサーチセンター
- 発売日: 2007/05
- メディア: 単行本
- クリック: 12回
- この商品を含むブログ (4件) を見る
- 作者: 和田卓人,Kevlin Henney,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/12/18
- メディア: 単行本(ソフトカバー)
- 購入: 58人 クリック: 2,107回
- この商品を含むブログ (350件) を見る