Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 25.10.2014, 17:48
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 18  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Цитата:
Сообщение от Gerbert Посмотреть сообщение
То есть, Вы считаете adobe таким примитивным, что у них состояния в сеттере меняются?)
Если установка нового значения должна сопровождаться изменением состояния, то сеттер как раз и берет на себя эту функцию. И не важно будет это сделано непосредственно в сеттере или он просто вызовет специальный метод, который отвечает за применение нового состояния или даже новое состояние сохранится в промежуточном свойстве, а из сеттера отправится запрос инвалидатции.
Например кнопка находится в состоянии "UP" и Вы заганяете новое значение для upState. Вы считаете adobe таким примитивным, что на enterFrame-обработчике висит проверка "а не изменилось ли какое нибудь состояние"? По моему им хватило ума из сеттера инициировать замену. А как она производится мне уже не так интересно. В своем же примере я показал только общую идею, а не конкретную реализацию.

Цитата:
Сообщение от Gerbert Посмотреть сообщение
Повторю вопрос в догонку - по Вашему мнению на DO вообще не нужно делать аксессоры,
если конечно, что-то да не меняется, как в примере выше?
Нет никакой разници какого типа значение должно хранить свойство. Необходимость в защите свойства через методы-аксессоры определяется архитектурой. В большинстве случаев есть смысл использовать аксессоры, но только потому, что в этом же большинстве случаев установка нового значения должна вызвать ответную реакцию. А если я вижу такое:
Код AS3:
private var _param:int;
public function get param():int { return _param; }
public function set param(value:int):void { _param = value; }
то это уже бред... Спросим у Википедии на счет инкапсуляции:
Цитата:
Сообщение от Википедия
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя.
Пример выше ничего от пользователя не скрывает, но в то же время усложняет класс. Работа с таким "защищенным" свойством не отличается от обычного публичного свойства, зато чтение и запись сопровождаэтся вызовом ненужных функций.

Цитата:
Сообщение от Gerbert Посмотреть сообщение
И не подумайте, что я пытаюсь придраться, я уточняю, так как Вы обосновали свое мнение и я вижу в нем долю истины.
Ну что Вы, придирайтесь на здоровье! Но только если по существу. Ато плодотворная дискуссия (в которлй между прочим может родится истина ) превратится в банальный срач.

Создать новую тему   Часовой пояс GMT +4, время: 15:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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