В последнее время я пытаюсь внедрить некоторые чистые методы кодирования в AS3. Одна из них заключалась в том, чтобы не отсылать ссылки на массивы из содержащего объекта. Дело в том, что я контролирую добавление и удаление из одного класса, а все остальные пользователи из массива получают только версию для чтения.
В настоящий момент версия только для чтения представляет собой класс ArrayIterator, который я написал, который реализует типичный интерфейс Iterator (hasNext, getNext). Он также расширяет прокси-сервер, поэтому его можно использовать для каждой петли, как только может быть массив.
Итак, мой вопрос заключается в том, что это не является фундаментальной особенностью многих языков? Возможность передавать ссылки на чтение только видов коллекций?
Также теперь, когда улучшена безопасность типов для коллекций в AS3, в виде класса Vector, когда я обертываю вектор в VectorIterator, я теряю типизацию ради неизменности. Есть ли способ реализовать два желания, неизменность и типизацию в AS3?