|
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
|