|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/400 20 Apr 2004 12:14:53 To : Yury Kopyl Subject : Re: OOP perl -------------------------------------------------------------------------------- Yury Kopyl -> Artem Chuprina @ Tue, 20 Apr 2004 06:03:10 +0000 (UTC): IF>>>>>> Кстати, относительно новомодности. Вот смотрю я на грядущее - IF>>>>>> perl6 - и что-то оно мне ну очень не нравится. Может, разубедит IF>>>>>> кто? YK>>>>> ожидал большего. Работа с объектами как была на уровне "заката YK>>>>> солнца вручную", так и осталась. AC>>>> IMHO как раз вот уж что-что, а объекты в современном perl AC>>>> реализованы как раз очень хорошо. Для парадигмы perl. Чистым AC>>>> ОО-языком его делать смысла нет, а из нечистых его подход мне AC>>>> нравится больше всего. Причем, я бы сказал, все ровно наоборот - AC>>>> никакого заката вручную, все на полном автопилоте. YK>>> Было бы не плохо, если бы private/protected, abstract, finalize, YK>>> static (методы/переменные класса) были все таки встроенными, а не YK>>> танца с бубном за счет Attribute::Handle. AC>> Hе надо пытаться делать из перла язык типа "шаг влево, шаг вправо AC>> приравнивается к бегству". Возможность же пользоваться одним и тем YK> Я же не говорю, что это нужно обязательно. Hо если будут такие YK> директивы на уровне синтаксиса - уже будет счасте. AC>> же методом и как static, и как обычным методом, рулит, а не AC>> наоборот. А со static переменными в перле, я бы сказал, гораздо AC>> лучше, чем в ОО языках... YK> ну давай рассмотрим пример: YK> как сейчас,в лоб: YK> sub test{ #static YK> shift if (UNIVERSAL::isa($_[0],$package)); YK> my (@vars)=@_; YK> ... YK> }; YK> можно вызывать: YK> MyClass::test(@vars); YK> MyClass->test(@vars); YK> $MyClassInstance->test(@vars); YK> и параметры будут передаваться правильно YK> но гораздо лучше было бы: YK> static sub test{ YK> my (@vars)=@_; YK> }; Так это ТЕБЕ так лучше. Потому что ТЫ так пишешь. А я обычно пишу так, что метод, буде ему передан объект, содержательно работает с этим объектом. А ежели не передан, то, сталбыть, не работает. Hапример, конструктор, будучи вызван как метод объекта, создает новый объект с учетом состояния текущего. -- Artem Chuprina RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/256069b597fb7.html, оценка из 5, голосов 10
|