2010-11-04 4 views
0

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

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

ответ

1

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

//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]; 

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

+0

Thanks Cay! Да, похоже, это путь. Наверное, нет пути вокруг итерации объектов, так или иначе. – BadmintonCat

Смежные вопросы