Я пытаюсь создать проблему, похожую на это, у меня есть объект, который содержит другие объекты, как в приведенном ниже примере. Я пытаюсь понять способ избежать первых свойств объекта со второго объекта без необходимости повторного копирования свойств между ними, что не похоже на хорошую практику программирования.
Например:
class employee{
String name;
int age;
}
class company{
String companyName;
List<employee> employeeList;
}
Мой вопрос, учитывая объект сотрудника, как я могу получить доступ к имени компании, для которого работает этот сотрудник? Одним из решений является добавление имени компании к каждому объекту сотрудника, но это, как представляется, избыточная трата памяти, поскольку она "гарантирована", что каждый сотрудник работает только для одной компании.
Теперь у вас есть однонаправленная зависимость. Другими словами, company
зависит от employee
. Однако employee
ничего не знает о company
которой принадлежит.
Вы можете просто добавить поле company
employee
и каждый раз, когда вы создаете employee
или добавляете его в company
employeeList
, не забудьте обновить обе стороны двунаправленной зависимости.
Обратите внимание, что соглашения о присвоении имен Java указывают, что имена типов должны начинаться с заглавной буквы.
C++: Вы могли бы дать сотруднику company
указатель, переданный как часть employee
конструктора и доступа companyName
через это.