|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Aleksey Barabanov 2:5020/400 07 Jun 2000 15:21:32 To : All Subject : Re: динамическое наследование -------------------------------------------------------------------------------- "Oleg A. Paraschenko" wrote: > [...много чего умного покоцано...] > > В данном случае неважно - мальчики, девочки или pop3, imap, mbox. Программа > должна работать с почтовым ящиком, а не с POP3-ящиком или IMAP-ящиком или > mbox-ящиком. Для этого Вам как-то требуется ввести объект "почтовый ящик", а > также уточнить это понятие для "pop3" и "mbox" ("imap" under construction > :-)). Исходный вопрос был: будут ли подводные камни при уточнении с помощью > @ISA. Ответ оказался утвердительным (все плохо). Моя версия - уточнение с > помощью наследования ("pop3" extends "ящик", "mbox" extends "ящик") - всего > лишь то, как бы это делал я. Как это делать правильно, может сказать только > мастер ООП. Вопрос "как жить" может решен разными путями. Hе буду оспаривать правильность какого-то конкретного выбора. Хотелось лишь выяснить жизнеспособность собственного. > > разных класса имеют одинаковый интерфейс для порождения класса > > соединяющего их схожие черты. > Создатели Java, видимо, тоже с этим сталкивались. Даже слово похожее > использовали: > interface почтовый_ящик { > int число_сообщений (); > ... > } > class pop3 implements почтовый_ящик { > int число_сообщений () { > ... > } > } > Специально для случая, когда классы не имеют ничего общего, кроме своего > назначения. В Перле слова 'interface' нет. Hо оно без проблем заменяется еще > одной записью в @ISA. А вот тут по-подробней если можно. С одного раза не словил. Как через сымитировать интерфейс. > > Сделать просто класс, использующий их в > > основе, а в одноименных методах производящий ветвление это пошло. > Если есть ветвление по типу объекта - это ошибка. Все надо срочно > перепроектировать. В чем же здесь ошибка. Это ошибка подхода, или чисто инструментальная? -- Aleksey Barabanov <alekseybb@mtu-net.ru> --- ifmail v.2.15dev5 * Origin: Small Office (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/441334406d8c.html, оценка из 5, голосов 10
|