![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Покурил, подумал.
Меня смущает вот что: new <State>[ this._chatBubble.state2, this._chatBubble.state3, this._chatBubble.state1, this._chatBubble.state1, this._chatBubble.state1, this._chatBubble.state2, ], new <State>[ this._chatBubble.state2, this._chatBubble.state3, this._chatBubble.state3, this._chatBubble.state1, this._chatBubble.state1, this._chatBubble.state1, this._chatBubble.state1, this._chatBubble.state2, this._chatBubble.state2, ]]; По большему счету ты просто вынес метод setTailPosition в 5 разных классов-стейтов (это вьюшки, кстати, управляющие положением точки "начала" баббла разговора). Собственно, количество повторений в моём коде ~= повторениям в твоём коде.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Modus ponens
|
~= != ==
![]() И там же написано, что такие вещи не должны в идеале быть хардкод, это должно строится исходя из каких-то данных не зависящих от логики.
__________________
Hell is the possibility of sanity |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Я в Java switch поменял на многократную перезагрузку единственного метода.
|
|
|||||
|
Цитата:
просто запихнем цифру 2, т.е. уберём стейты. После в setTailPosition возьмем нужную цифру, исходя из seat. По мне мы убрали лишнюю сущность State (точнее, несколько их), не добавив хардкодинга. Я понимаю, о чем ты, но по моему конкретно в этом случае это вещь в себе. "Клёвый подход, потому что он... клёвый!".
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Modus ponens
|
Не, хардкод - это другое. Но для того, чтобы "поправить" то, как сейчас сделано надо знать больше о том, что вообще этот класс делает. Имелось в виду, что данные, но не только данные, а еще и "объяснение" хранятся отдельно от логики этого класса. А уж если мы найдем способ хорошо представить данные (с чего вообще и нужно начинать работу над любой программой), тогда у нас и не будет необходимости в этой функции - мы построим таблицу переходов по стейтам исходя из полученой информации а не "просто так".
Т.е. перед написанием кода, ну это как бы логично... нужно понять для себя что давать этому участку, и что ему не нужно, и как это подготовить. Ну вот, например, передается maxPlayers:int, а на самом деле нужен isSmallRoom:Boolean или что-то в этом духе - т.как от того, будет ли оно 1, 2, 3, или 42 ничего не изменится. Соответственно, возможно, что если информация по посадочным местам была изначально подготовлена вроде: и передана в таком виде класс, то задача построения таблицы упростилась бы до 1-2 строчек и была бы понятна читающему, настраиваема и т.д.
__________________
Hell is the possibility of sanity |
|
|||||
|
wvxvw, ты крут.
Кстати, как я понял у вас в основном для сборки используется ant. Не делали с его помощью автогенерацию классов по файлам настроек? Добавлено через 42 секунды etc, а это как?
__________________
Сам себе репортер |
|
|||||
|
@wvxvw, ну да, прав. Спасибо за консультации.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Modus ponens
|
Только какую-то мелочь, типа для тестовых версий, чтобы в контекстном меню показывал номер версии, или если условно-условная компиляция mxmlc оказывается недостаточно сообразительной, тогда приходится делать финты ушами с предварительными заменами антом. А вообще ант - далеко не идеальный инструмент для генерации... хотя идея такая есть давно - не понятно на чем реализовать
![]()
__________________
Hell is the possibility of sanity |
|
|||||
|
rake+sprout. Справляются идеально. Генерит, компилит, деплоит.
Единственный минус (для меня), что на ruby
__________________
Сам себе репортер |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|