@IndependenceLetter

Почему именно такое отношение между классами ( Trip has Airplane)?

Пишу ООП задачку (авиалинии) по ТЗ, согласно ТЗ предоставляются интерфейсы, которые нельзя менять и реализация не должна иметь чего-то лишнего ( don`t violate your interface implementations by adding more methods etc). Тупо следуя ТЗ ничего сложного не вижу, но смущает следующее:
interface ITrip
{
 //getters like id, itinerary
public IAirplane Airplane();  
}
interface IAirplane // есть 2 подвида самолетов
{
// содержит в себе коллекцию пассажиров, добавляет/удаляет пассажиров
}

Есть Аэропорт который создаёт Трипы, пассажиров и есть метод CheckIn ( думаю понятно по логике, что должен делать => чекИнить пассажира). Так вот логика этого метода взять все имеющиеся Трипы и через их самолёты посмотреть состоит ли пассажир в каком-то другом самолёте и если да => Exception. )
Вопрос Почему именно такая связь между самолётами и трипами?? С самолётами ясно, содержат пассажиров, но почему у трипа самолёт? (понимаю, что 1 самолёт = несколько трипов, 1 трип =1 самолёт)
Но всё же не могу принять чего так? И логика CheckIn кажется конченной честно...

UPD: Массив трипов в Аэропорту, но Самолёты не знают ничего о трипах.
  • Вопрос задан
  • 142 просмотра
Решения вопроса 2
@Mercury13
Программист на «си с крестами» и не только
Очевидно, тут имеется в виду жизнь аэропорта в динамике. То есть не заполнить его данными и замолкнуть, а вести вылеты-прилёты, сажать пассажиров в самолёты и т.д.
Trip — это маршрут, и в одном самолёте могут ехать несколько маршрутов (например, с посадками, или рейс вообще чартерный и несколько турагентств заполняют самолёт).
Ответ написан
Комментировать
@yuopi
C# developer
Вспомните табло вылетов и прилетов, там говорится откуда, куда, во сколько и номер самолета - это трип.
Следовательно идет в первую очередь трип, а уже у него самолет.
А вообще не пытайтесь связывать реальные иерархии с ООП.
Код писать надо так, как будет удобнее и функциональнее
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Да все эти задания "на ООП" c высосанными из пальца иерархиями наследования, как ты выразился, "конченные". Не задумывайся, нет там логики, автор никогда не писал реальный код.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы