Руководство по actionscript. часть 3, стр. 016

Restricted var secretData:String = «No peeking»;

// Это метод с ограниченным доступом.

// К нему могут обращаться только авторизованные

// классы.

restricted function secretMethod ( ).void { trace(«Restricted method secretMethod( ) called»);

}

}

}

Защищаемый класс хранит массив авторизованных классов. Кроме того, в нем объявлено пространство имен с использованием модификатора управления доступом private, которое применяется для уточнения методов и переменных с ограниченным доступом. Более того, идентификатор URI для этого пространства имен генерируется автоматически, поэтому его невозможно узнать и использовать за пределами данного класса. Наконец, защищаемый класс определяет сами переменные и методы с ограниченным доступом.

Для обращения к методу или переменной с ограниченным доступом (например, secretData или secretMethod ( ) ) потенциальный класс должен получить общеизвестные «ключи от парадной двери». Другими словами, он должен получить ссылку на пространство имен, которое уточняет методы и переменные с ограниченным доступом. Однако защищаемый класс предоставит эту ссылку только в том случае, если потенциальный класс — будем называть его «вызывающим классом» — является одним из элементов массива authorizedClasses.

В нашем примере вызывающий класс будет просить у класса ShelteredClass ссылку на пространство имен restricted, используя метод getRestricted Namespace ( ) класса ShelteredClass. Метод getRestrictedAccess ( ) принимает экземпляр вызывающего класса в качестве аргумента. Если экземпляр вызывающего класса оказывается авторизованным, метод getRestrictedNames расе ( ) вернет ссылку на пространство имен restricted. В противном случае метод вернет значение null, которое сообщает о том, что вызывающий класс не имеет права обращаться к методам и переменным с ограниченным доступом. Рассмотрим код метода getRestrictedNamespace ( ):

public function getRestrictedNamespace

(cal lerObject:Object.):Namespace { // Проверяем, есть ли объект cal1erObject в массиве authorizedClasses. for each (var authorizedClass:Class in authorizedClasses) { // Если вызывающий объект является экземпляром авторизованного класса… if (callerObject is authorizedClass) { // …возвращаем обратно ссылку на пространство имен restricted // («ключи от парадной двери») return restricted;

// Вызывающий объект не является экземпляром

// авторизованного класса, поэтому

// запрещаем дальнейшее обращение к переменной

// и методу с ограниченным доступом.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.84
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 091
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 072
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 119
  • 12.04.2011">Photoshop для начинающих: как вставить фото в готовую рамку?
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.90
  • 13.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.88
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.62
  • 17.03.2011">Руководство по actionscript. часть 3, стр. 002
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.42
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 110
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 123
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 053
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 117
  • 19.02.2013">Избавление от шлаков и токсинов
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...