Нужно немного объяснить, что с OOAD “- это ”иерархия

StackOverflow https://stackoverflow.com/questions/1372181

  •  21-09-2019
  •  | 
  •  

Вопрос

У меня есть покупка Объектно-ориентированный анализ и проектирование с использованием приложений, на странице 64 параграф 2 содержит объяснение иерархии "является", как показано ниже.

С точки зрения иерархии “есть а” высокоуровневая абстракция является обобщенной, а низкоуровневая - специализированной.Поэтому мы говорим, что класс Flower находится на более высоком уровне абстракции, чем класс Plant.

Насколько я понимаю, я думаю, что plant - это более обобщающее понятие, чем flower, чем flower class в ниже уровень абстракции выше, чем у растения.

На данный момент я хочу знать, правильно ли мое понимание или верна книга?Пожалуйста, разъясните мне.

Это было полезно?

Решение

Я согласен, эта цитата неверна.По приведенному здесь определению, Растение находится на более высоком уровне абстракции, чем Цветок:определение правильное, имена в примере перенесены.

Другие советы

Пример растений и цветов для иерархий is-a, вероятно, самый худший, который я когда-либо слышал!

Автомобиль - это... транспортное средство.Собака - это млекопитающее.Сберегательный счет - это (n) счет.Все это типичные и легко понятные примеры.

То, что вы процитировали, звучит не совсем правильно.Я бы понял, что Растение находится на более высоком уровне абстракции, чем Цветок, предполагая, что Цветок наследуется от Растения.Следовательно,

Цветок is a Растение

но

Растение - это не обязательно Цветок

Я бы не сказал, что утверждение "Цветок - это растение" верно, на мой взгляд, Растение has-a Цветок.Я думаю, что здесь отсутствует какой-то контекст.

Я думаю, что автор книги объясняет здесь об иерархиях наследования.Если объект находится на вершине иерархии, он является или должен быть более обобщенным (или абстрактным), чем объекты, расположенные ниже него в иерархии.Плохой дизайн - иметь объект, наследуемый от другого объекта, но более абстрактный, чем его родительский объект (перевод в абстрактный класс, наследуемый от конкретного класса).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top