![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Korchy
Вот я как раз и не знал стоит ли так дублировать свойства у двух родственных классов и не возникнет ли потом проблем с их одинаковым использованием. |
|
|||||
|
GBee, Абсолютно верно. Должен быть менеджер "коробок" который будет следить что и куда можно положить
__________________
adobe AS3 manual |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Цитата:
![]() А можно поподробнее? Вот выпустили китайцы свой тип розеток, как в стороннем классе прописать какие вилки в нее можно вставить? |
|
|||||
|
Если уж на то пошло, тогда должен быть один абстрактный класс "розетка", потому что функционал все розетки выполняют один и тот же.
Только некоторые с заземлением, и некоторые с разным вольтажом, или видом Добавлено через 52 секунды Но вообще, я думаю что Ваши ассоциации и в этом случае не верны. А почему вы так противитесь внешнему менеджеру?
__________________
adobe AS3 manual |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 212
|
Безусловно, но розетки бывают разные и некоторые поддерживают лишь определенный набор вилок. Вот как раз список поддерживаемых вилок и нужно где то хранить и если человек по своей глупости пытается воткнуть в розетку несовместимую с ней вилку, то ни давать ему это сделать.
Последний раз редактировалось PlutDem; 23.05.2012 в 00:22. |
|
|||||
|
Мне это чем-то отдаленно напоминает функционал Finite State Machine
Или например заинтересованность в оповещениях, что в PureMVC Тогда верно, в каждом классе создайте статический массив, с элементами допустимых типов Добавлено через 54 секунды И при "соединении" проверяйте, поддерживает ли текущий класс этот тип. Если не поддерживает - тогда уже throw
__________________
adobe AS3 manual |
|
|||||
|
у советской розетки метод подсоединения вилки должен принимать экземпляр советской вилки
т.е. по сути любого наследника SovietPlug (который в свою очередь может наследовать от Plug как общего класса вилок), и тогда уже действительно 'В советскую розетку европейскую вилку не вставишь' |
|
|||||
|
silin:
Я тоже об этом подумал. Но если в розетку захотят тыкать 2,3 .. 10 видов вилок (а вы же помните, пример гипотетический) - тогда создавать для каждого типа свой connect? В таком случае будет разумнее прибегнуть к помощи интерфейсов. И передавать именно их в параметре. Но и этот способ не универсален
__________________
adobe AS3 manual Последний раз редактировалось strangedk; 23.05.2012 в 00:41. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Вообще-то можно делать как в 1-м посте написано "Насколько я понимаю, так делать нельзя?". Т.е. так делать можно, только я синтаксис для инита вектора на месте забываю постоянно, но можно нагуглить или чо %), для массива это
Вообще как бы сделать, чтоб оно работало и не сильно криво - не вопрос по-моему. Я наверное забабахал бы один статик конст Dictionary (в котором по Dictionary на каждого наследника) на всё, статическую функцию инита, которая заполняет его и статическую же функцию, проверяющую подходит или нет. Плюс - всё в одном месте, всё достаточно просто. Минус - при добавлении нового наследника надо будет лезть в инитилку, которая не в том же классе. Dictionary, а не вектор/массив, т.к. поиск по нему быстрее.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
А я статическим сделал бы только массив (вектор) с типами.
А добавлять уже всё через методы класса, и проверять на вхождение типа в массив там же.
__________________
adobe AS3 manual |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:18. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|