У меня есть эти два объекта: Титулярный и знакомый (Семейный/родственник/родственник).Моделирование классов: иерархия или атрибут?
Знакомый [0 .. *] < ------> [1] Титулярные
Эти 2 класса имеет Общин атрибуты человека (имя, фамилия, дата рождения ....), и они 2 вид Партнерская
Я хочу, чтобы объединить тех, кто в один супер класса (обобщение) Person, но то, что я не могу понять, я должен сделать титульной и Знакомые продлить лицо или добавить человека в качестве атрибута из них.
Человек также должен существовать сам по себе (не может быть абстрактным), и не все Лица являются аффилированными лицами НО! Мне также нужен способ установить/обработать поведение сообщества для Titular и Familiar.
Person [1] < ------> [0 .. *] титулярный
Person [1] < ------> [0 .. *] Знакомый
титулярный [1] < ------> [0 .. *] Знакомый
Так сомнение:
public class Titular extend Person
public class Familiar extend Person {
или
public class Titular implement Affiliate {
private Person person;
public class Familiar implement Affiliate {
private Titular t;
private Person person;
или (третья мысль)
public class Person {
public abstract class Affiliate {
protected Person person;
public class Titular extends Affiliate {
Если объекты обозначают ссылки между людьми, то они не должны расширять «Лицо» - ваше второе решение выглядит лучше всего. – OldCurmudgeon
@ OldCurmudgeon Я буду здорово, если вы сможете потратить время, чтобы поделиться своими мыслями по моему ответу. – axiom