[Надеемся, что этот вопрос и ответ создает некоторое давление на юных учителей, чтобы они заботились о качестве своих вопросов к экзамену / викторине.]
Во-первых, важно отметить, что диаграмма классов имеет несколько недостатков.Имена ролей «субъект» и «объект» находятся на неправильном (противоположном) конце ассоциации.Затем, как вы уже задавались вопросом, ассоциация субъект-объект дублируется, поскольку она наследуется.
Что касается вопросов, оба ответа A и B верны, а все остальные неправильны.Это непосредственно следует из чтения ограничений множественности ассоциации субъект-объект «один-ко-многим».
Кстати, формулировка вариантов ответа B и C является своего рода некорректной: может быть странно говорить «каждый экземпляр»класса Observer (или Subject) ", поскольку эти классы являются абстрактными (визуализируются именами курсивом), что означает, что они не имеют своих собственных (прямых) экземпляров.Однако в общем смысле можно сказать, что у них есть экземпляры, а именно все экземпляры их конкретных подклассов.Поэтому эти два варианта ответа сбивают с толку.Но для любого вида экзаменов важно не допускать запутанных вопросов.
Полагаю, ваш учитель считает ответ B неправильным, поскольку речь идет об экземплярах абстрактных классов Observer и Subject.Однако в его нынешнем виде ответ B является правильным.Это будет неверно только в том случае, если его перефразировать как «каждый прямой экземпляр класса Observer (или Subject)».
Ответ C неверен, посколькуЭкземпляр класса Subject может не иметь связи с каким-либо Наблюдателем (это подразумевается 0 в выражении множественности 0..*
).
Ответ D неверен, поскольку модель не содержит такого ограничения (которое,Кстати, не имеет никакого смысла).
Ответ E является неправильным, поскольку он противоречит ограничению множественности, что любой наблюдатель должен наблюдать точно один субъект, выраженный выражением множественности 1
.