Обобщение диаграммы классов UML или нет?

Профессор просит нарисовать диаграмму классов с указанием множественности и взаимосвязи для следующего сценария:

A student taking subjects borrow some textbooks as listed in subject syllabus and some reference books which are not listed in subject syllabus.

Я умею рисовать ассоциативные отношения между учеником и предметом. Но я не уверен, следует ли мне сгенерировать класс Book и сделать два подкласса для учебника и справочника. Мое оправдание состоит в том, что я считаю, что в учебниках и справочниках используются одни и те же атрибуты и методы. В обобщении может не быть необходимости.

Поразмыслив несколько минут, я могу создать класс Book с общим атрибутом (название, ISBN и т. д.) И создать еще один класс BookType для указания типа книги. Но я думаю, что BookType может быть атрибутом класса Book.

Поскольку у меня нет конкретной идеи, мог бы кто-нибудь дать совет?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В целом ответ зависит от функциональных требований, но я был бы ориентирован на то, чтобы не указывать разницу между учебной программой и справочниками, потому что в конце они все еще остаются книгами без каких-либо конкретных спецификаций или методов. также добавление атрибута типа. В лучшем случае, если вам нужно различать два типа книг, вы можете сказать, что Ученик содержит два разных списка заимствованных книг, учебный план и Справочная литература.

Я не думаю, что дифференциация атрибутов «Студент» дала бы какое-то преимущество. Либо (я думаю) это должно быть обобщением, либо вообще ничего.

qwerty_so 01.05.2018 21:01

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

Jul10 01.05.2018 21:49

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