|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Vinokurov Andrey 2:5020/400 23 Jan 2002 16:58:18 To : Alex Kharitonov Subject : Re: Perl OOP??? -------------------------------------------------------------------------------- Привет. "Alex Kharitonov" <Alex.Kharitonov@p17.f7.n5038.z2.fidonet.org> wrote in message news:1011484105@p17.f7.n5038.z2.fidonet.ftn... VA> Еще один важный момент - _подлинная_ инкапсуляция предполагает VA> сокрытие данных. Этого перл, естественно, тоже не умеет - данные VA> объекта доступны всегда: AK> Если сделать класс на основе ссылки на процедуру, то никто снаружи AK> ничего не увидит ;-) Т.е. придется исхитряться, _эмулировать_ эту возможность. Так я тебе и в чистом Си ее съэмулирую. VA> Я уж не VA> говорю о об отсутсвии таких "вкусностей", как перегрузка операторов. AK> ;-) Есть это. Приведи ссылки на документацию и примеры синтаксиса. Я в описании 5.6.1 такого не нашел. VA> аналог перлового массива @ISA и т.д.. Т.е. "объектность перла" - это VA> типичный образчик не встроенной, а "приклепанной" объектности. AK> Что довольно логично - ведь первоначально Perl не был объектно-ориентированным AK> языком. Дешевая эмуляция. Серьезное встраивание ОО-возможностей в язык потребовало бы существенного изменения синтаксиса. VA> Еще раз повторю, язык можно считать объектным не тогда, когда на нем VA> можно программировать в "объектном стиле" (это позволяют почти все VA> языки - в той или иной степени), а только тогда, когда в языке есть VA> _встроенная_ поддержка всей парадигмы ОО. AK> Почему? Может наоборот - все языки, позволяющие в той или иной степени AK> программировать в объектном стиле, являются в той или иной степени объектными? Я уже писал о том, что "в объектном стиле" можно программировать практически на любом языке. Большинство объектных фич перла я без труда повторю на чистом си. Значит ли это, что перл и чистый си являются объектными языками в одной и той же степени? VA> Перл этому условию не удовлетворяет. AK> Инкапсуляции, наследования и полиморфизма уже недостаточно, нужно чтобы они AK> были сделаны строго определенным способом? ;-) Hет, нужно, чтоб они были встроены в язык. VA> Итак, сделайте ка мне на перле "ромбовидное невиртуальное VA> наследование". Это когда VA> class L { /*...*/ }; VA> class A: public L { /*...*/ }; VA> class B: public L { /*...*/ }; VA> class AB: public A, public B { /*...*/}; AK> См. http://askh.karelia.ru/perl/labab.pl Устраивает? Hет. Будет устраивать, если ты в базовый класс L внесешь пару-тройку полей данных, и чтоб в каждом подобъекте (типа А и B соотв.) объекта типа AB была _своя_ копия подобъекта типа L. Пока. Андрей. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/6577913935e5.html, оценка из 5, голосов 10
|