- Должен ли я разработать определенный класс? Может быть
- Понравилось? Нет
Вопрос о том, использовать наследование или нет, является ИМХО вопросом затрат / выгод.
При реализации наследования обычно возникают некоторые затраты, связанные с дополнительными классами., таблицы, документация и другие результаты, которые необходимо создать после принятия решения об использовании наследования.
Наследование относится к особым и общим случаям.Сначала вы можете спросить, в чем разница между делами (называемыми дискриминатором).В вашем случае это тип резервирования, и вы можете избежать наследования, моделируя этот тип резервирования и реализуя другое поведение в зависимости от типа резервирования.Это может привести к такой схеме:
Избежание наследства
Если наследство имеет высокую выгодупоскольку для каждого особого случая существует множество дополнительных атрибутов, отношений или операций, вы можете применить его.
В этом случае
- дополнительное отношение 1: n между обычнымирезервирование и резервирование (которое не было видно в вашем дизайне, но подразумевалось атрибутом обычное резервирование)
и есть несколько дополнительных полей
- дата начала
- дата окончания
- частота
В настоящее время не хватает обычного поведения, которое позволило бы применять наследование.На изображении ниже я все же добавил обобщение.Это не понадобится в данный момент времени, но как только вы начнете выполнять общие операции, вы захотите применить их к любому типу бронирования:
Применение наследования