23 02 2006 perl designpattern Tweet
Singletonは結城さんの本の言葉を借りれば
- 指定したクラスのインスタンスが絶対に一個しか存在しないことを保証したい
- インスタンスが一個しかないことをプログラムで表現したい
ということになるわけですが、
perlではコンストラクタをprivateにしてしまうということが出来ないので、ココみたいにはいかないのは、おまえののログ に書いてある通りなのは理解できる。
package Singleton;
use strict;
use vars qw($singleton);
sub new {
$singleton and return $singleton;
my $class = shift;
my $self = {};
$singleton = $self;
print "インスタンスを生成しました。\n";
bless $self, $class;
}
1;
こんな感じで書くと駄目な理由がイマイチわからん。
でも同じような書きかたしてたぞ。
- http://www.hyuki.com/techinfo/singleton.html
- http://homepage1.nifty.com/markey/memo/200207.html
- http://pc8.2ch.net/test/read.cgi/php/1069451782/
- http://www.atmarkit.co.jp/fjava/javatips/075java007.html
- http://bulknews.net/lib/slides/llsaturday-2003/oop-perl.ppt
- http://norainu.net/mt/archives/2005/11/classsingleton.html
このエントリは結城浩さんの本と、それに載っているサンプルをPerlで書いた例をみながら考えたことをメモってます。あとは、はてなの伊藤さんのjavascriptでの例も参考にしてます。 間違いの指摘とか、もっといいやり方教授してくれたらとても嬉しいゾ。