Форум
Компьютерные священные войны
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, Ночной Смотрящий, Вы писали: НС>Здравствуйте, Ikemefula, Вы писали: НС>>>Для полиморфизма - более чем достаточно. I>>Недостаточно, т.к. интерфейс не предоставляет никаких гарантий. НС>Вообще никаких? К чему эта софистика? Очевидно что какие то гарантии он дает, но иммутабельность в этот список не входит. I>>Алгебраические типы данных поддерживаются языками которые в мейнстриме не летают. НС>Это пока. Хотя вон F# почти мейнстрим. I>>И когда некто понаимплементит в одном классе кучку интерфейсов, уследить за свойствами этого решения становится, мягко говоря, проблематично. НС>У любой технологии есть свои недостатки. Вывод то какой? Не использовать ООП? I>>>>Более того, с наследованием интерфейсов ровно те же проблемы. НС>>>Проблем с высокой зависимостью наследника от предка там нет. I>>Непонятно. Приведи пример для отношения is, subtype то есть. НС>Зачем мне приводить какой то пример? Тебюе без примера непонятно, что связь базовый класс - наследник намного сильнее, чем интерфейс - реализация? I>>>> или так - понареализовывает в классе целую кучу интерфейсов - мутебальных и иммутабельных. Вроде бы наследование нет, но проблемы ровно те же НС>>>Какие? I>>Ломаются гарантии. Ты получил ссылку с типом иммутабельного интерфейса и твой код полагается на это свойство иммутабельности. НС>С чего бы? Гарантию иммутабельности ООП в принципе никогда не давал и не дает, хоть с интерфейсами, хоть без. Можно, конечно, что нибудь придумать, но я тогда тебя спрошу - а что насчет какой нибудь другой гарантии? Например, гарантии времени выполнения или гарантии по объему потребляемой памяти, да даже проще - гарантий на диапазон возвращаемых значений или даже на отсутствие там null. Очевидно, что абсолютных гарантий тебе никто не даст, но отсутствие гарантии иммутабельности это далеко не единственный и даже не главный недостаток наследования классов. НС>>>Не знаю что тебе ясно, но логика "раз мы не можем отловить всех воров, то вообще их ловить не будем" так себе. I>>А у тебя выбора нет, НС>У меня выбор есть I>> т.к. в языках отсутствует проверка внятных гарантий. НС>А внятными гарантии кто назначает? I>>Нужно заменить extends на subtype и все станет хорошо. НС>Нет, все не станет.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …