Короткий ответ
Поскольку есть два ограничения, которые могут вызвать проблемы, и они в некоторой степени связаны (и они привели меня к этому вопросу ;-)) , позвольте мне описать их оба, то есть подмножества и переопределения< /эм>
Подводя итог - переопределяет изменяет (предоставляет более точную) логику модели для одного и того же отношения, но в специализированном классе, в то время как подмножества показывают отношения между различными отношениями одних и тех же классов (они могут наследоваться, но не обязательно) и показывает, что объекты, находящиеся в одном отношении, создают подмножество объектов, находящихся в другом отношении.
Более подробный ответ
переопределяет
переопределяет некоторым образом изменяет логику отношения для специализации класса, связанного с отношением. Например. в то время как у животных может быть любое количество конечностей (осьминог 8 и многоножка - кто знает...), у людей всегда 4. Таким образом, у нас есть отношение от человека к конечности с целевым именем конечность, но с измененной множественностью (до 4). Рис. 1 — Нормальная конечность — переопределяет
Также могут быть внесены дополнительные изменения, например, мы можем определить новый класс JointLimb, специализирующийся на Limb. Поскольку у людей есть только JointLimb, наша связь не только изменит множественность, но и позволит использовать только специализированный класс на обоих концах связи. Рис. 2 — Совместная конечность — переопределяет
подмножества
С другой стороны, подмножества показывает, что объекты, находящиеся в одной связи (с ограничением подмножества), все в то же время находятся в какой-то другой связи (той, которая указана в ограничение подмножества), т. е. набор объектов в первом отношении является подмножеством объектов во втором отношении. В нашем случае у нас появятся новые классы Hand и Leg, специализирующиеся на классе Limb (или JointLimb в последнем примере). Поскольку каждая рука (соответственно, нога) является конечностью (JointLimb), связь между человеком и рукой (ногой) будет иметь множественность 2, целевое имя рука (нога) и будет ограничена подмножествами конечностей. Рис. 3 — Нормальная конечность — подмножества Рис. 4 — JointLimb — подмножества
Хотя в предыдущем примере у нас было подмножество, несколько связанное с наследованием, это не обязательно должно быть так. Рассмотрим класс Car и класс Wheel. Автомобиль оснащен колесами (что представляет собой отношение «оборудованное колесо»), некоторые из них (например, 4 для легкового автомобиля) являются установленными колесами, а некоторые (1 для легкового автомобиля) являются запасными колесами. Оба подмножества mountWheel и запасного колеса оснащеныWheel. Рис. 5 – Автомобиль – подмножества
Извините, я пока не могу размещать изображения и размещать более 2 ссылок, поэтому вы должны следовать эту ссылку, чтобы увидеть примеры.
Надеюсь, это поможет.
person
Ister
schedule
16.05.2016