ActionScript / Flex: почему применяются внутренние методы {Fault, Result} AsyncToken? - PullRequest
0 голосов
/ 21 октября 2009

Как видно из названия, почему applyResult и applyFault методы AsyncToken помечены mx_internal?

Несколько раз я хотел бы использовать AsyncToken в своем коде, но в итоге я переписал его, потому что не хочу заставлять клиентов use namespace mx_internal.

Ответы [ 2 ]

4 голосов
/ 07 декабря 2012

Если бы вы создали этот класс, вы бы хотели скрыть функциональность от обычных пользователей, поскольку вы не хотите, чтобы они ошибочно вызывали методы, но внутренние классы, которые их создают, должны вызывать их, поэтому отмечая их так как mx_internal имеет смысл.

1 голос
/ 22 октября 2009

Ну, как указано где-то в liveocs (я думаю), mx_internal используется для обозначения вещей в структуре, которые могут со временем меняться (очевидно, они думали, что C # и Java делают неправильно с устаревшими вещами). Что касается точной причины, по которой эти конкретные методы помечены mx_internal, знает только разработчик, который пометил их. Они, вероятно, встретились однажды, чтобы обсудить это, и это звучало примерно так: «Эй. Какой доступ мы хотим получить к этим методам?» «Не знаю, хотим ли мы, чтобы их можно было переопределить?» «Не уверен» «Хорошо, давайте сделаем их mx_internal тогда». Было много случаев, когда методы, которые должны были быть помечены как защищенные, были помечены mx_internal (или приватными, что в некоторых случаях даже хуже), и это одна из самых раздражающих вещей в гибкой среде.

Кроме того, вы используете пространство имен mx_internal, хотите вы этого или нет, потому что большинство компонентов в структуре импортируют его, поэтому, если вы используете компоненты гибкой платформы, ваша сборка уже включает его.

...