У меня есть класс A. Класс A отвечает за управление временем жизни объектов B, и он содержит контейнер объектов B, равный map<BGuid,B>
, а каждый объект B содержит контейнер объектов C, равный map<CGuid,C>
. У меня есть один global Объект для всего приложения.
У меня следующая проблема:
У меня есть объект CGuid, и я хочу использовать его, чтобы найти мой объект C. Но для этого мне также нужно знать объект BGuid, который скажет мне, в каком объекте B мне следует искать мой объект C. Но все, что у меня есть, это CGuid, что означает, что я должен проверить каждый объект B, чтобы увидеть, содержит ли он мой объект C. Однако я думаю, что это грязно.
Я подумал, что, возможно, у меня должен быть другой класс, скажем, M, который будет содержать карту всех моих объектов C, и я могу искать прямо в нем только с помощью CGuid, но это означает, что мне нужно поддерживать дополнительную карту только для поиска.
Также я исключаю, что в будущем мой класс C будет содержать map<Dguid,D>
, поэтому у меня возникнет та же проблема с объектами D, на этот раз еще хуже, мне понадобятся Bguid, Cguid и Dguid, чтобы найти мой объект D.
Как решить эту проблему?