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

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

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

Регистрация: Feb 2012
Сообщений: 212
Korchy
Вот я как раз и не знал стоит ли так дублировать свойства у двух родственных классов и не возникнет ли потом проблем с их одинаковым использованием.

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
GBee, Абсолютно верно. Должен быть менеджер "коробок" который будет следить что и куда можно положить
__________________
adobe AS3 manual

Старый 23.05.2012, 00:04
PlutDem вне форума Посмотреть профиль Отправить личное сообщение для PlutDem Найти все сообщения от PlutDem
  № 13  
Ответить с цитированием
PlutDem
 
Аватар для PlutDem

Регистрация: Feb 2012
Сообщений: 212
Цитата:
Сообщение от GBee Посмотреть сообщение
Коробка не должна "думать", что в нее кладут. Максимум она имеет пластырь с надписью.
Ох, зря я привел пример с коробками, тогда уж не коробки, а, скажем, розетки. В советскую розетку же европейскую вилку не вставишь?
Цитата:
Сообщение от GBee Посмотреть сообщение
В отдельном классе?
А можно поподробнее? Вот выпустили китайцы свой тип розеток, как в стороннем классе прописать какие вилки в нее можно вставить?

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

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

Только некоторые с заземлением, и некоторые с разным вольтажом, или видом

Добавлено через 52 секунды
Но вообще, я думаю что Ваши ассоциации и в этом случае не верны.
А почему вы так противитесь внешнему менеджеру?
__________________
adobe AS3 manual

Старый 23.05.2012, 00:18
PlutDem вне форума Посмотреть профиль Отправить личное сообщение для PlutDem Найти все сообщения от PlutDem
  № 15  
Ответить с цитированием
PlutDem
 
Аватар для PlutDem

Регистрация: Feb 2012
Сообщений: 212
Цитата:
Сообщение от strangedk Посмотреть сообщение
Если уж на то пошло, тогда должен быть один абстрактный класс "розетка", потому что функционал все розетки выполняют один и тот же.
?
Безусловно, но розетки бывают разные и некоторые поддерживают лишь определенный набор вилок. Вот как раз список поддерживаемых вилок и нужно где то хранить и если человек по своей глупости пытается воткнуть в розетку несовместимую с ней вилку, то ни давать ему это сделать.


Последний раз редактировалось PlutDem; 23.05.2012 в 00:22.
Старый 23.05.2012, 00:25
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 16  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Мне это чем-то отдаленно напоминает функционал Finite State Machine
Или например заинтересованность в оповещениях, что в PureMVC

Тогда верно, в каждом классе создайте статический массив, с элементами допустимых типов

Добавлено через 54 секунды
И при "соединении" проверяйте, поддерживает ли текущий класс этот тип.
Если не поддерживает - тогда уже throw
__________________
adobe AS3 manual

Старый 23.05.2012, 00:27
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 17  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
у советской розетки метод подсоединения вилки должен принимать экземпляр советской вилки
Код AS3:
protected function connect(plug:SovietPlug):void
т.е. по сути любого наследника SovietPlug (который в свою очередь может наследовать от Plug как общего класса вилок), и тогда уже действительно 'В советскую розетку европейскую вилку не вставишь'

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
silin:
Я тоже об этом подумал. Но если в розетку захотят тыкать 2,3 .. 10 видов вилок (а вы же помните, пример гипотетический)

- тогда создавать для каждого типа свой connect?

В таком случае будет разумнее прибегнуть к помощи интерфейсов.
И передавать именно их в параметре. Но и этот способ не универсален
__________________
adobe AS3 manual


Последний раз редактировалось strangedk; 23.05.2012 в 00:41.
Старый 23.05.2012, 00:55
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 19  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Вообще-то можно делать как в 1-м посте написано "Насколько я понимаю, так делать нельзя?". Т.е. так делать можно, только я синтаксис для инита вектора на месте забываю постоянно, но можно нагуглить или чо %), для массива это
Код AS3:
public static var allowedTypes:Array = [Sth1,Sth2,Sth3];
Вообще как бы сделать, чтоб оно работало и не сильно криво - не вопрос по-моему.

Я наверное забабахал бы один статик конст Dictionary (в котором по Dictionary на каждого наследника) на всё, статическую функцию инита, которая заполняет его и статическую же функцию, проверяющую подходит или нет. Плюс - всё в одном месте, всё достаточно просто. Минус - при добавлении нового наследника надо будет лезть в инитилку, которая не в том же классе. Dictionary, а не вектор/массив, т.к. поиск по нему быстрее.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
А я статическим сделал бы только массив (вектор) с типами.
А добавлять уже всё через методы класса, и проверять на вхождение типа в массив там же.
__________________
adobe AS3 manual

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

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

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


 


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


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