Цитата:
Сообщение от 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
И не подумайте, что я пытаюсь придраться, я уточняю, так как Вы обосновали свое мнение и я вижу в нем долю истины.
|
Ну что Вы, придирайтесь на здоровье! Но только если по существу. Ато плодотворная дискуссия (в которлй между прочим может родится истина

) превратится в банальный срач.