[Moscow.pm] Динамические возможности Perl :: помощь коллективного разума
Alexander Q
qalex на ashmanov.com
Пт Апр 30 08:52:15 PDT 2010
On 30.04.2010 19:46, Akzhan Abdulin wrote:
> Это не то понятие синглтона, которым мы обычно оперируем.
>
> Речь о класс-синглтоне, являющимся специализацией класса для одного
> конкретного объекта.
>
> http://ola-bini.blogspot.com/2006/09/ruby-singleton-class.html
Специализацию сделать нетрудно. Например, так:
package MyClass;
...
has methods => (
is => 'rw',
isa => 'HashRef',
default => sub {{}},
);
...
my $a = MyClass->new();
$a->methods->{method} = sub { ... };
$a->methods->{method}->();
Можно сделать более красиво, через AUTOLOAD. Ежели метода нету, а
элемент хэша из coderefs есть, то автолоад возвращает понятно что.
> 30 апреля 2010 г. 19:43 пользователь Andrei
> <andrei.protasovitski на gmail.com <mailto:andrei.protasovitski на gmail.com>>
> написал:
>
>
>
> 30 апреля 2010 г. 17:31 пользователь Akzhan Abdulin
> <akzhan.abdulin на gmail.com <mailto:akzhan.abdulin на gmail.com>> написал:
>
> Кстати, вспомнил про объекты-синглтоны. Это объекты, которые
> обладают уникальными свойствами и методами, отсутствующими у
> других объектов того же класса.
>
> Они вполне часто используются в Ruby, но я не знаю аналога в
> Perl. В Perl пакет - это класс, и методы принадлежат пакету, а
> не объекту.
>
>
> Class::Singleton?
>
>
> --
> Andrei Protasovitski
> < andrei[dot]protasovitski[at]gmail[dot]com >
> Diemen, Netherlands
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org <mailto:moscow-pm на pm.org> | http://moscow.pm.org
>
>
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
Alexander Q mailto:qalex на ashmanov.com
Подробная информация о списке рассылки Moscow-pm