|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Vargen 2:5020/400 20 Apr 2004 20:22:10 To : Yury Kopyl Subject : Re: OOP perl --------------------------------------------------------------------------------
Esli nasledovanie ispol'zuesh, to imenno tak ono
mojet vyzyvayuts'a iz constructorov proizvodnyh
classov. I.e:
# Bazovyi
package User;
use fields qw(name pwd);
sub new {
my ($class, $name, $pwd) = @_;
my User $self = ref $class ? $class :
fields::new($class);
$self->{name} = $name;
$self->{pwd} = $pwd;
return $self;
}
# Proizvodnyi
package Customer;
use base 'User';
ue fields qw(account);
sub new {
my ($class, $name, $pwd, $account) = @_;
my Customer $self = ref $class ? $class :
fields::new($class);
$self->{account} = $account;
# Initialize base.
$self->SUPER::new($name, $pwd);
return $self;
}
Yury Kopyl пишет:
YK> Hасчет конструктора, который вызывается из уже
существующего объекта - imho
YK> то уже перебор. Hе проще сделать отдельный
метод названием наподобие
YK> "clone_use_current_state". Общие куски методов
выносишь в приватный метод
YK> или вызываешь из метода "clone..." конструктор
и доиниализируешь объект
YK> полученных объект.
YK> Yury Kopyl aka hrg | http://id.totem.ru |
YK> "Если ты плюнешь на коллектив - коллектив утрется,
YK> но если коллектив плюнет на тебя - ты утонешь"
(С)Баралгин
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
* Origin: Talk.ru (2:5020/400)
Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/6488699b1066.html, оценка из 5, голосов 10
|