![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Намекает, что название класса выбрано неудачно.Вообще можно ведь кидать эксепшен с подробным описанием если в названии класса ошибка.Пусть оно будет и в runtime,а не compiletime.
|
|
|||||
|
Нет. Этот подход просто другой. Но ничем не лучше.
Его главный недостаток в том, что приходится писать кейсы для каждого возможного варианта. У меня в игре разных классов объектов уже около 60 (и это далеко не предел). Писать такой длинный свитч - не самый удобный вариант. Второй недостаток в том, что он не учитывает классы, которые могут подгружаться в рантайме со внешними swf (в тот же ApplicationDomain). Вариант же с getDefinitionByName() лучше в обоих этих случаях. А то, что там возможны опечатки, звучит слегка надумано. Всегда можно оттрейсить что же там за имя класса, если что-то неработает. А сам пакет, в котором все они хранятся, можно записать в константу и передавать только название самого класса, без длинного пакета. Собственно, я так и делаю. У меня код воссоздания персонажей занимает всего 6 строчек и все прекрасно работает.
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
|
.
|
Цитата:
Вот верю я в в плотную интеграцию Remote Class instantiation, хотя у нас в студии на неё плохо смотрели серверные программисты (но это другая история, они прост не хотели шевелиться). Но как к этой теме тип "*" относится я не знаю. Помню, приходил к нам устраиваться один прогер, я еще в таймзире работал. Я посмотрел на код какого-то его самодела на AS3 и спросил почему он всегда использует тип Object и не пользуется сильной типизацией. Он прост ушел. |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
dimarik, такой вариант глаз не колет?
Собственно ты сам начал с того, что не нравится тип *, а потом перешел к тому, что из этого типа инстансируется, где никаких * уже нет. |
|
|||||
|
.
|
Цитата:
Из типа что-то инстанцируется? Как из отряда земоводных инстанцируется лягушка? |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
первоначальная претензия:
Цитата:
Цитата:
Добавлено через 1 минуту Цитата:
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Вобщем всё прекрасно со *, кроме одного: Вы сначала вынуждены СОЗДАТЬ неведому зверушку, которую повелел XML, не имея ни малейшего понятия, что при этом произойдет — когда она оживет и начнет что-то делать, — и только потом можете распросить её, с какого она района. Чтобы долго не гундеть: представим, что в linkage_id вам пришло "Main". Теперь посмотрите на мой простенький свитч и, возможно, уловите разницу. p.S. Предвидя "я же не совершу такую глупость..." хочу заметить, что случается и не такое. Искусство программирования состоит в принципиальном блокировании возможностей для ошибки, а не в уповании на Авось. Если до сих пор Вам удавалось держать все подробности проекта в своей голове, это говорит о размере проекта, а не головы. Когда-нибудь он перестанет помещаться, и придется обзавестись дополнительными "головами". И вот тогда "я же не совершу такую глупость..." станет лишь частью реальности, пожираемой хаосом ![]()
__________________
Reality.getBounds(this); |
|
|||||
|
Цитата:
Сдается мне, что ты просто не понял, о чем я говорил Цитата:
Это избавит от написания огромных неуклюжих свичкейсов. При том, что на выходе свитча объект все равно приведется к какому-то базовому классу. Метод то, в котором написан свитч, тоже должен что-то возвращать, либо инициализировать переменную, которая тоже относится к базовому типу
__________________
Ко мне можно и нужно обращаться на ты) Последний раз редактировалось caseyryan; 23.09.2016 в 09:03. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Не знаю, что ты имел ввиду под базовой зверушкой, видимо всё то же Земноводное; судя по победной риторике, ты считаешь что таким странным сравнением заменил свитч на 500 строк? Если бы мне надо было работать с одним единственным классом, я бы конечно не стал писать свитч, не выставляй меня идиотом. Ну а, если это действительно Земноводное, некий общий тип всех зверушек, то как раз он то и не "может родиться", сорри.
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:31. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| классы , ООП |
| Опции темы | |
| Опции просмотра | |
|
|