singleton における実装と制約の分離 (perl の場合)

何を singleton 化すべきかは状況によって変わることがあるので、singleton化を強制することになる「singleton class」は使うべきじゃないと思ってる。

Kazuho Oku on Twitter: "何を singleton 化すべきかは状況によって変わることがあるので、singleton化を強制することになる「singleton class」は使うべきじゃないと思ってる。"

自分で書くならこんな感じ。

sub create_singleton {
    my $ctor = shift;
    my $instance = undef;
    sub {
        $instance ||= $ctor->();
    };
}

*dbh = create_singleton(sub { DBI->connect(...) });

dbh->prepare(...);
...