Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.131.178] |
|
Страницы: (8) « Первая ... 5 6 [7] 8 все ( Перейти к последнему сообщению ) |
Сообщ.
#91
,
|
|
|
Мне одному кажется, что в случае с квадратами и прямоугольниками начать следует с вопросов о том, какие еще будут сущности, что вообще делаем, какую задачу в итоге решаем, и только потом уже начинать за наследование, классы и прочую агрегацию?
|
Сообщ.
#92
,
|
|
|
Цитата applegame @ Когда Круг является Эллипсом, но наследовать Круг от Эллипса - очень плохая идея. Зависит от интерфейсов. В случае иммутабельных объектов - норм. |
Сообщ.
#93
,
|
|
|
Цитата D_KEY @ В случае иммутабельных объектов - норм. Тыщастопицот объектов-"кругов" будут занимать больше памяти за счет лишнего параметра. |
Сообщ.
#94
,
|
|
|
Подобие интерфейсов зато есть - https://elixirschool.com/ru/lessons/advanced/protocols/
Врешь и не краснеешь, потому что я покраснел когда врал! |
Сообщ.
#95
,
|
|
|
Цитата Wound @ Вот тут автор предлагает другое решение: https://dou.ua/lenta/articles/composition-v...itance-in-java/ Ну там он в принципе призывает отказываться от наследования. И приводит пример в самом начале. Ни коем разом не противоречит мною написанному! Я просто расписал как правильно наследоваться в "придуманной проблеме", но не обсуждал - нужно ли это делать, или же можно решить проблему вообще иначе. Добавлено Да и ващще, Бритва Оккама рулит! И в определении последовательности наследования - рулит не менее! |
Сообщ.
#96
,
|
|
|
Цитата applegame @ Подобие интерфейсов зато есть Поведение из эрланга, я так понимаю? |
Сообщ.
#97
,
|
|
|
Цитата Астарот @ Нет, это чисто эликсировская хрень, поведение - это совсем другое. Поведение из эрланга, я так понимаю? |
Сообщ.
#98
,
|
|
|
Скрытый текст Цитата applegame @ Врешь и не краснеешь, потому что я покраснел когда врал! |
Сообщ.
#99
,
|
|
|
Цитата Астарот @ Мне одному кажется, что в случае с квадратами и прямоугольниками начать следует с вопросов о том, какие еще будут сущности, что вообще делаем, какую задачу в итоге решаем, и только потом уже начинать за наследование, классы и прочую агрегацию? Не, не одному Любая задача жи начинается с осмысления, с построения более менее непротиворечивой и полной системы. Выдуманная и, увы, распространенная "проблема" наследования квадрата и прямоугольника - имхо, это очередной сферический конь в вакууме. |
Сообщ.
#100
,
|
|
|
Цитата JoeUser @ Очевидно же, что это не проблема в смысле "сложная задача, которую трудно решить", это просто синтетический пример того, что вот этот вот тезис:Выдуманная и, увы, распространенная "проблема" наследования квадрата и прямоугольника - имхо, это очередной сферический конь в вакууме. в общем случае может привести (а может и не привести) к ошибке описанной в этом примере. Для того чтобы избежать подобных косяков на практике, Барбара Лисков предложила довольно простой принцип. Этот принцип является одним из пяти принципов SOLID Вы же с Астаротом, похоже, восприняли эту "проблему" как некую критику наследования или хз что вы там подумали. |
Сообщ.
#101
,
|
|
|
Цитата applegame @ Вы же с Астаротом, похоже, восприняли эту "проблему" как некую критику наследования или хз что вы там подумали. Лично я эту "проблему" воспринял так, что если это абстрактная проблема, то решать ее можно как угодно, а если реальная, то начинать решать надо совсем с другого Цитата applegame @ Барбара Лисков предложила довольно простой принцип. Принцип-то простой, но куда его прикладывать на практике я так до конца и не вкурил |
Сообщ.
#102
,
|
|
|
Цитата Астарот @ Воспринимай эту "проблему" точно также как ты воспринимал вот эту Лично я эту "проблему" воспринял так, что если это абстрактная проблема, то решать ее можно как угодно, а если реальная, то начинать решать надо совсем с другого Цитата Астарот @ А в чем трабла? Собрался наследовать B от A. Подумай, сможешь ли во все методы предназначенные для A корректно засунуть любой B. Если сможешь, все ок, если нет - что-то пошло не так. Принцип-то простой, но куда его прикладывать на практике я так до конца и не вкурил |
Сообщ.
#103
,
|
|
|
Цитата Астарот @ но куда его прикладывать на практике я так до конца и не вкурил К отношениям Вот если объект класса B может всегда и везде выступать как объект класса A, если контракты B полностью соответствуют контрактам A (в случае методов можно ослаблять предусловия и усиливать постусловия), тогда и применимо наследование |
Сообщ.
#104
,
|
|
|
Цитата applegame @ А в чем трабла? Собрался наследовать B от A. Подумай, сможешь ли во все методы предназначенные для A корректно засунуть любой B. Если сможешь, все ок, если нет - что-то пошло не так. Проблема в том, что методов принимающих А много, и не все они писаны мной, поэтому, как проверить, что все ок не понятно. Цитата D_KEY @ Вот если объект класса B может всегда и везде выступать как объект класса A, если контракты B полностью соответствуют контрактам A (в случае методов можно ослаблять предусловия и усиливать постусловия), тогда и применимо наследование Что за "пред" и "пост" условия такие? |
Сообщ.
#105
,
|
|
|
В этом мире человек копает яму лопатой. =) |