デザパたん第3回 シングルトンパターン

デザインパターン勉強会の第3回。シングルトンパターンに関連するまとめ。
1
ぽり野郎 @polistes

シングルトンといったらマルチスレッド。でも実用した人はいない。 #dezapatan

2011-02-15 20:32:48
ぽり野郎 @polistes

よくつかうのはDBアクセス、ログの吐き出し。Androidの世界にも世界にひとつしかないものが多い #dezapatan

2011-02-15 20:33:38
ぽり野郎 @polistes

そんなのもシングルトンって言うんだって例がほしい #dezapatan

2011-02-15 20:41:10
ぽり野郎 @polistes

staticブロックがある(どよどよ) #dezapatan

2011-02-15 20:51:40
ぽり野郎 @polistes

staticブロック:HashMap(など)の中身が初期化し、修正されないことを保証する。 #dezapatan

2011-02-15 20:54:24
Yuji Sato @kuidaoring

static なものの解決の順番ってどうなってるのか #dezapatan

2011-02-15 20:29:22
ぽり野郎 @polistes

シングルトンは言語系にかなり依存している #dezapatan

2011-02-15 20:57:49
かへねろ/たつみん @cafenero_777

シングルトンは言語依存。ちゃんと知ろう言語仕様。 #dezapatan

2011-02-15 21:04:36
Hnz @hnz

言語仕様に激しく依存するのはシングルトンだけなのかな #dezapatan

2011-02-15 22:09:51
ぽり野郎 @polistes

シングルトンの回なのにシングルトンの話はあまり出てこない #dezapatan

2011-02-15 21:22:19
ぽり野郎 @polistes

cloneメソッドは呼び出しただけだとエラー。cloneメソッドを実装するに #dezapatan はclonableを継承するべき。でもObjectクラスにもcloneメソッドはある。

2011-02-15 20:59:05
ぽり野郎 @polistes

コレクションクラスのオブジェクトをクローンするときには要素もクローンできないとまずいけど、クローンメソッドを持っていることは保証できない #dezapatan

2011-02-15 21:00:41
ぽり野郎 @polistes

perlはきもいからなんでもできそう → シングルトンは無理なんじゃないか #dezapatan

2011-02-15 21:02:21
ぽり野郎 @polistes

PHPはできるはず。Pythonはできたんじゃない?弾小飼がPerlでできるっていってるから、できない! #dezapatan

2011-02-15 21:03:19
かへねろ/たつみん @cafenero_777

dankogaiが出来ると言う事は(一般に) 出来ない。#dezapatan

2011-02-15 21:05:41
ぽり野郎 @polistes

シングルトンにするとコンストラクタをprivateにするので継承できない継承するときは別の手段を考えろ。(ここから先はインクが霞んで読めない状態) #dezapatan

2011-02-15 21:05:18
ぽり野郎 @polistes

本家GoF本にはマルチスレッドの話はない #dezapatan

2011-02-15 21:18:11
ぽり野郎 @polistes

あるクラスにたいしてインスタンスが1つしかないことを保証し、グローバルいアクセスする手段を提供する #dezapatan

2011-02-15 21:11:32
ぽり野郎 @polistes

シングルトンの効果いろいろ。グローバル変数の改良版と考える。使用される名前が減る #dezapatan

2011-02-15 21:12:35
ぽり野郎 @polistes

クラスメソッドやクラス変数をstatic化することでもシングルトンのようなものを作れるけれど、インスタン数を増やす場合には困難 #dezapatan

2011-02-15 21:17:46
ぽり野郎 @polistes

継承する場合は呼び出し元で例外処理を投げる?リフレクション?もはやJavaのコードじゃなくなる #dezapatan

2011-02-15 21:07:34