Лучший способ сопоставить ссылки на идентификаторы объектов? - PullRequest
0 голосов
/ 04 ноября 2010

Я пишу приложение, в котором у меня есть много объектов (моделей данных), которые идентифицируются уникальным идентификатором String, которым обладает каждый такой объект, и эти объекты могут ссылаться друг на друга по своим идентификаторам.

Пока все хорошо, но теперь мне нужно отслеживать, какой объект сохраняет ссылку на другой объект, и, конечно, есть случаи, когда объект ссылается (или на него ссылается) более чем на один другой объект, и мне было интересно, что бы быть лучшим способом для хранения этих ссылок? В простой структуре данных карты я мог бы просто отобразить идентификатор одного объекта на другой, но, как уже упоминалось, есть случаи, когда объект может содержать ссылку на произвольное количество других объектов. Или я мог бы отобразить другую карту или массив, содержащий более одной ссылки, но я бы хотел предотвратить итерацию, и, возможно, кто-то знает гораздо лучшее решение для этого.

1 Ответ

1 голос
/ 04 ноября 2010

Я думаю, это зависит от конкретного использования, но я думаю, что Словарь - это путь, если вам не нужен порядок ссылок, в этом случае я думаю, что Массив (или Вектор) должен работать ...

//Array:
object1.references.push(object2);
for each(var o in object1.references) trace(o);
object1.references.pop();

//Dictionary:
object1.references[object2] = 1;
for (var o in object1.references) trace(o);
delete object1.references[object2];

Всякий раз, когда у вас есть динамический произвольный набор объектов, я думаю, что вам обязательно нужно будет перебирать их, будь то массив, объект или словарь.

...