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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.11.2011, 23:46
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 21  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Про полиморфизм в данном контексте понял (в примерах до меня лучше доходит), a значение и так знал :о).

Но
Цитата:
Соответственно, посему геттер без сеттера это проблеск инкапсуляции - мы запрещаем ему менять какую-то переменную. Но разные проверки внутри сеттера - это штатные ситуации, которые обрабатываются. Это просто код класса.
Проверка внутри сеттера как раз и есть "проблеск инкапсуляции", мы не сможем впихнуть в объект невпихуемое, тем самым не сломаем "капсулу".
При этом в сеттер тоже можно много чего напихать.
Например (грубый), если у массива сделать сеттер length, по которому попить или пушить элементы до нужной длины. Нам совсем не нужно знать о том, как он при этом реорганизуется внутри и всё в этом духе.

У меня ощущение, что мы говорим об одном и том же, но смотрим на конкретне примеры немного с разных сторон.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 10.11.2011, 00:55
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 22  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
полиморфизм

к сожалению, только через акцессоры мы можем задать интерфейс для свойств

инкапсуляция

пример:
изменяя извне свойство width у спрайта мы не задумываемся , что при этом, как такового, свойства то и нет, и мы меняем матрицу трансформации, при запросе аналогично - мы всего лишь узнаём лишь какое-то вычисляемое значение.
т.е. по сути _width наверое и нету никакого (а если и есть, то только для кэширования вычислений)
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 10.11.2011 в 02:09.
Старый 10.11.2011, 00:58
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 23  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
@Psycho Tiger
Цитата:
А в чем она проявляется? Вот 2 варианта. Разницы нету.
В том что доступа к данным у тебя нет, у тебя есть доступ только к методам для их получения/изменения. Опять же, ты не знаешь как они работают. Это и есть инкапсуляция.

@Bee
Цитата:
Скорее с тз инкапсуляции.
Обе точки зрения равноправны. Ибо переменную переопределить нельзя.

@Котяра
Цитата:
Как раз при использовании VO ("типы данных") чаще всего и приходится использовать акцессоры (для диспатча события об изменении)
С какого перепуга VO стали что-то диспатчить? ByteArray диспатчит? Нет. А он как и любое VO есть тупо набор данных.
__________________
...вселенская грусть

Старый 10.11.2011, 01:17
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 24  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Согласен, но чтобы не писать лишнюю обёртку над vo, прописать диспетчеризацию явно или через [Bindable], считаю нормальной практикой. VO от этого не становится чем то большим.
__________________
Отряд Котовскага

Старый 10.11.2011, 02:49
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 25  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Цитата:
Сообщение от Котяра Посмотреть сообщение
Согласен, но чтобы не писать лишнюю обёртку над vo, прописать диспетчеризацию явно или через [Bindable], считаю нормальной практикой. VO от этого не становится чем то большим.
Обычно VO использую без диспетчеризации, только для определения типа. А проверку и диспетчеризацию оставляю для ProxyData, который эти VO содержит.

т.к. именно ProxyData генерирует окончательные события.

Старый 10.11.2011, 09:14
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 26  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Напомните плиз, от какой фразы образовано сокращение VO?

Старый 10.11.2011, 09:20
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 27  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Value Object
__________________
http://www.chessmax.ru


Последний раз редактировалось Inet_PC; 10.11.2011 в 09:23.
Старый 10.11.2011, 13:59
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 28  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
т.к. именно ProxyData генерирует окончательные события.
Не стоит так строго следовать догматам, при том что эти догматы, как правило, отвязаны от конкретного языка и среды исполнения. Не всегда есть смысл плодить сущности.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 10.11.2011, 14:23
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 29  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Я согласен с Вами. Но я еще не испытывал неудобств следуя своему методу: содержать в VO исключительно данные, без малейшего функционала.


Последний раз редактировалось strangedk; 10.11.2011 в 14:28.
Старый 10.11.2011, 14:49
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 30  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
На примере тех же Point и Rectangle хорошо видно, как избыточный функционал напрягает. Может я и ошибаюсь, но мне кажется, каждому хотя бы раз приходило в голову желание сделать минималистические аналоги, которые были бы просто хранилищем нескольких переменных. Потому как для общения разных классов и их методов, да и для хранения данных в этих классах, ничего кроме координат и ширины/высоты от этих Типов не нужно. Но рано или поздно упираешься в то, что придется преобразовывать таки свои пойнты/доты/пункты/позишны в стандартный Point, чтобы вызвать наконец стандартный метод. Что мешало заключить всю эту богатую функциональность точки в какой-нибудь другой класс в либе geom, для меня лично загадка. Я не люблю мультитулы и монстров. Воздушный хрупкий Пойнт из двух свойств мне больше по душе. А набор методов для работы с ним мог бы прекрасно жить в наборе методов, принимающих эти легкие пойнты и ректанглы для обработки.
__________________
Reality.getBounds(this);

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

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

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


 


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


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