Это тривиальный вопрос программирования. Я не специалист по Java. Скажем, я использую объекты пользовательских классов Company и Employee, аналогично тому, как это делается во многих примерах СУБД:
class Employee
{
Company company;
}
class Company
{
String name;
}
Мне нужно гарантировать, что разные объекты Company
имеют уникальные имена, т.е. никакие два таких объекта не могут иметь с тем же именем, потому что с моей точки зрения это не имеет смысла, а также просто съедает память - если в IBM работают два сотрудника, то существует единственный объект Company
с этим именем
, период.
Сейчас я думаю о том, чтобы сделать конструктор Company
закрытым, чтобы задача выделения объектов Company с произвольными именами была делегирована доверенному методу, который, предположим, отклонит любую последующую попытку создать объект с уже существующим именем или вернет существующий или новый объект (создав его, если необходимо).
Проблема в том, что я не уверен, как это сделать элегантно. Было бы неплохо, если бы не нужно было выполнять поиск O (n)
каждый раз, когда запрашивается объект Company
с именем - так что, возможно, хэш-карта или двоичное дерево там для моего удобства? Я также хотел бы изменить способ идентификации объектов Company
, что приводит меня к следующему: буду ли я отменять Object.equals
и / или Object.hashCode
] методы?