Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Почему все свойства объекта получают тип "object" ? (http://www.flasher.ru/forum/showthread.php?t=90328)

etc 17.07.2007 18:09

Скорее это просто неприязнь к статике и все.

WindWalker 17.07.2007 18:33

У всего есть свои плюсы и свои минусы.
И то, что AS 2 позволяет свободу выбора того или иного подхода и даже смешивать оба подхода - это, в принципе, не плохо.
Под каждую задачу можно выбирать оптимальный путь.

Кстати в Яве, которая настолько строгая, что для неё в принципе стало возможно создать такую прекрасную среду, как IDEA, и то есть java.lang.reflect, который я бы назвал "динамика на костылях".

Dr.OH 17.07.2007 22:39

__etc, тогда я не понял, что ты спрашивал.
WindWalker, клево, ты создал указатель на bool и что?

WindWalker 18.07.2007 11:19

На самом деле произойдёт следующее:
1. Будет создан экземпляр EmailValidator на основе строки.
2. Будет вызван метод isValid() для этого экземпляра.
3. Результат, возвращённый методом, запишется в переменную.
4. Garbage Collector убьёт экземпляр.

Вобщем, задача будет решена. Принципы ООП не пострадают.
Но будет выполнено два совершенно лишних действия: создание и удаление объекта.

Несколько быстрее будет работать такой вариант:
Код:

isValid = EmailValidator.validate(tfEmail.text);
Т.е. если используется статический метод класса.

Правда, тоже есть подводный камень.
Обычно класс находится в каком-то пекедже. И хоть и пишем просто EmailValidator, компилятор всё равно расширяет его до полного имени.
Например, com.strings.validators.EmailValidator

Прежде, чем будет вызван метод этого класса, произойдёт следующее (синтаксис flasm'а):
Код:

    push 'com'
    getVariable
    push 'strings'
    getMember
    push 'validators'
    getMember
    push 'EmailValidator'
    getMember

Вобщем, довольно много не самых быстрых инструкций.
Зачастую это, конечно, малозаметно. Но всё равно иногда терзает душу.

etc 18.07.2007 13:09

Цитата:

Сообщение от Dr.OH
__etc, тогда я не понял, что ты спрашивал.

Я спрашивал, каким образом ты будешь использовать сервисные функции а-ля проверка E-mail, если статику ты так не любишь? Так, как написал WindWalker?

WindWalker, интересный домен «strings.com» :D

WindWalker 18.07.2007 13:57

Это же чисто пример.


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

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