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
> <[email protected] <mailto:[email protected]>>
> написал:
>
>
>
> 30 апреля 2010 г. 17:31 пользователь Akzhan Abdulin
> <[email protected] <mailto:[email protected]>> написал:
>
> Кстати, вспомнил про объекты-синглтоны. Это объекты, которые
> обладают уникальными свойствами и методами, отсутствующими у
> других объектов того же класса.
>
> Они вполне часто используются в Ruby, но я не знаю аналога в
> Perl. В Perl пакет - это класс, и методы принадлежат пакету, а
> не объекту.
>
>
> Class::Singleton?
>
>
> --
> Andrei Protasovitski
> < andrei[dot]protasovitski[at]gmail[dot]com >
> Diemen, Netherlands
>
> --
> Moscow.pm mailing list
> [email protected] <mailto:[email protected]> | http://moscow.pm.org
>
>
>
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
--
Alexander Q mailto:[email protected]
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org