ActionScript/Flex: почему применяются внутренние методы {Fault,Result} AsyncToken?
Как видно из названия, почему applyResult
а также applyFault
методы AsyncToken
отмеченный mx_internal
?
Было несколько раз, что я хотел бы использовать AsyncToken
в моем коде, но я закончил переписывать его, потому что я не хочу заставлять клиентов use namespace mx_internal
,
2 ответа
Ну, как указано где-то в liveocs (я думаю) mx_internal
используется для обозначения вещей в структуре, которые могут со временем меняться (очевидно, они думали, что C# и Java делают это неправильно с устаревшими элементами). Что касается точной причины, почему эти конкретные методы отмечены mx_internal
только разработчик, который отметил их, знает. Они, вероятно, однажды встретились, чтобы обсудить это, и это звучало примерно так: "Эй. Какой доступ мы хотим получить к этим методам?" "Не знаю, хотим ли мы, чтобы они были переопределенными?" "Не уверен" "Хорошо, давайте сделаем их mx_internal
затем ". Было много случаев, когда методы, которые должны были быть помечены как защищенные, были отмечены mx_internal
(или приватный, что в некоторых случаях еще хуже), и это одна из самых раздражающих вещей в гибкой среде.
Кроме того, вы используете mx_internal
Пространство имен, хотите вы этого или нет, потому что большинство компонентов в структуре импортируют его, поэтому, если вы используете компоненты гибкой платформы, ваша сборка уже включает его.
Если вы создали этот класс, вы бы хотели скрыть функциональность от обычных пользователей, поскольку вы не хотите, чтобы они ошибочно вызывали методы, но внутренние классы, которые их создают, должны вызывать их, поэтому помечая их как mx_internal, вы делаете здравый смысл.