Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Запретить использование методов (http://www.flasher.ru/forum/showthread.php?t=174796)

in4core 02.02.2012 20:36

Запретить использование методов
 
Собственно интересует такой вопрос, по защите от дурака.
Есть например класс в конструкторе онного проверяется, можно ли использовать его методы, например по какой нибудь переменной типа булен. Собственно после инициализации , как запретить юзать методы, если проверка не прошла? Просто например методов может быть 20, не писать же в каждом из них if(bool) ...
???

GBee 02.02.2012 20:45

Почему бы и нет? Почему бы на такие случаи не использовать всю мощь ООП и при плохом юзере создавать объекты с заглушками.

elder_Nosferatu 02.02.2012 20:46

ActionScript не имеет такого модификатора доступа, а значит прийдется самому проверять... 20 методов === 20 проверок

GBee 02.02.2012 20:48

BaseClass.as
|
|- NormalClass.as
|- DurakClass.as

Код AS3:

var obj:BaseClass;
if(bool)
  obj = new DurakClass();
else
  obj = new NormalClass();


elder_Nosferatu 02.02.2012 20:53

2in4core
А зачем вам писать классы для дураков?

GBee 02.02.2012 20:59

Не доверяет коллегам :о)

in4core 02.02.2012 21:01

Да не то чтобы писать, понятное дело, что разговор не про дурака. Вот щас пишу, чуть позже выложу свой DDL , естественно проверка на доступность ExternalI идет в инициализаторе , и толку нам от того, доступен он или нет, если при вызове любого метода нам будет RTE в случае, если он не досутпен.
Пример почему возникает такой вопрос : пишем мы допустим сайт, написали красавца все окей, начали вешать DDL повесили как надо проверили в браузере - кул, допилили еще какие то модификации у сайта, но проверить то надо... у нас 2 пути либо заливать на хост ( или запускать из бина html ) либо сносить весь DDL и проверять локально по старинке. Собственно в 1000 раз было бы удобно изменить какой нить парам в конфиге и класс отключится ( ну или проверка в конструкторе как я предлагаю ) :) вот я к чему.
Да и еще, речь идет о статик классе , если бы был с инстансом было бы проще решить

elder_Nosferatu 02.02.2012 21:06

А чем статитк плохой? Со статическими переменными и статическими геттер/сеттер-методами получаем тот же обычный екземпляр обычного класса, который откликается только на имя класса...

in4core 02.02.2012 21:10

ммм. что?! Я имею ввиду, как заглушку я мог бы сделать так

Код AS3:

private var instanceClass:SomeSUperClass = new SomeSuperClass();

изначально
далее кругом в коде юзаются сотни методов. Как нам спрятать класс не нарушая иерархию использования методов?* тоесть отключить на время ? Легко
Код AS3:

private var instanceClass:Object = {};

Конечно не везде поможет, но все же.

Добавлено через 47 секунд
Со статиком же я так не сделаю. Собственно вопрос остается открытым как без проверок заглушить на время класс

elder_Nosferatu 02.02.2012 21:37

Код AS3:

private var ClassRef:Class;
// Когда нужно
ClassRef = SomeStaticClass;
// Когда не нужно
ClassRef = Object;



Часовой пояс GMT +4, время: 23:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.