|
5 / 7 / 2
Регистрация: 26.05.2015
Сообщений: 81
|
|
Что от чего наследовать: прямоугольник от квадрата или квадрат от прямоугольника?27.05.2015, 16:48. Показов 14322. Ответов 42
Метки нет (Все метки)
Собсно вопрос, который часто возникает при проектировании объектной модели, и который я не до конца понимаю и который я попытался выразить в простом примере - что от чего наследовать: прямоугольник от квадрата или квадрат от прямоугольника?
1) С одной стороны логично наследовать что-то более конкретное от более общего - то есть унаследовать квадрат от прямоугольника, так как любой квадрат является прямоугольником, но не любой прямоугольник квадратом. В этом случае для кода: class Rectangle { } class Square : Rectangle { } Square obj = new Square(); print(obj is Square); // вернет True print(obj is Rectangle); // вернет True две последние строчки вернут значение True, что собсно верно. 2) С другой стороны, обратное более практично - для прямоугольника необходимо хранить как ширину, так и высоту, в отличии от квадрата для которого достаточно хранить информацию только для одной из сторон. Следовательно при наследовании прямоугольника от квадрата класс Square не будет хранить избыточную информацию, что может быть критично, если нам надо создавать огромный массив объектов. Так как же все таки правильнее наследовать?
0
|
|
| 27.05.2015, 16:48 | |
|
Ответы с готовыми решениями:
42
|
| 04.06.2015, 22:50 | |
|
Не по теме: а какой смысл разбивать именно на объекты?
0
|
|
|
Антикодер
1889 / 871 / 48
Регистрация: 15.09.2012
Сообщений: 3,092
|
|
| 10.06.2015, 21:59 | |
|
когда возникают такие вопросы, которые непонятно какую цель преследуют, стоит начать изучение функционального программирования. И эти вопросы исчезнут.
То есть ответ на вопрос ТС: это не важно, каким способом ваша программа решает задачу, если результаты верные. У каждого своя иерархия классов, которая зависит от многих факторов. То есть чтобы определить иерархию, нужно сначала определить требования для конкретного проекта, чем лучше описаны требования, тем очевиднее иерархия классов [если она там нужна] Добавлено через 3 минуты В вашем случае, напрашивается вывод, что вы ещё создадите супер класс Figure То есть возможно у вас в коде есть проблема длинных иерархий наследования.
0
|
|
| 11.06.2015, 00:40 | |
|
Не по теме: Любую проблему можно решить добавлением ещё одного уровня абстракции... кроме проблемы слишком большого количества уровней абстракции. :)
0
|
|
| 11.06.2015, 00:40 | |
|
Выводить информацию, какая фигура: квадрат или прямоугольник
Составить программу для вычисления площади одной из фигур: квадрата, круга или прямоугольника по значению x Определите что представляет из себя четырехугольник: ромб, прямоугольник, квадрат, трапеция Что исправить, чтобы фигуры квадрат и прямоугольник могли изменять размер? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|