Обновление: пожалуйста, прочитайте этот вопрос в контексте принципов проектирования, элегантности, выражения намерений и особенно "сигналов", посылаемых другим программистам при выборе дизайна.
У меня есть два "вида" набора объектов. Одним из них является словарь / карта, индексирующая объекты по строковому значению. Другой - это словарь / карта, индексирующий объекты по порядковому номеру (порядковое целое число). Не существует «основной» коллекции самих объектов, которая может служить авторитетным источником для количества объектов, но оба словаря всегда должны содержать ссылки на все объекты.
Когда новый элемент добавляется в набор, ссылка добавляется в оба словаря, а затем необходимо выполнить некоторую обработку, на которую влияет новое общее количество объектов.
Что я должен использовать в качестве авторитетного источника для ссылки на текущий размер набора объектов? Кажется, что все мои варианты несовершенны в том или ином измерении. Я могу просто последовательно ссылаться на один из словарей, но это будет означать, что этот словарь превосходит другой. Я мог бы добавить третью коллекцию, простой список объектов, которые будут служить авторитетным списком, но это увеличивает избыточность. Хранение счетчика выполненных операций кажется самым простым, но также увеличивает избыточность и является более хрупким, чем ссылка на счет самопроверки коллекции на лету.
Есть ли другой вариант, который позволит мне избежать выбора меньшего зла, или мне придется пойти на компромисс в отношении элегантности?