Game Programming Patterns / Паттерны программирования в играх: 1.3. Observer
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Но если вы напишите несколько крупных приложений, используя их, вы начнёте кое-что замечать. GromHoll 13.06.14 в 23:54 |
|
|
Большая часть кода ваших наблюдателей выглядит одинаково. GromHoll 13.06.14 в 23:55 |
||
|
Это выглядит примерно так: GromHoll 13.06.14 в 23:55 |
||
|
Получить уведомление о том, что некоторые состояние изменилось. GromHoll 13.06.14 в 23:56 |
||
|
Изменить некоторый элемент UI, чтобы отразить новое состояние. GromHoll 13.06.14 в 23:57 |
||
|
Все эти, "Ой, у героя теперь 7 жизней? GromHoll 13.06.14 в 23:58 |
||
|
Позвольте мне поставить ширину индикатора здоровья в 70 пикселей" GromHoll 14.06.14 в 00:00 |
||
|
Со временем всё это утомляет. GromHoll 14.06.14 в 00:02 |
||
|
Академики компьютерных наук и инженеры-программисты пытались устранить эту скуку долгое время. GromHoll 14.06.14 в 00:03 |
||
|
Их попытки известны под разными именами: "Программирование потока данных", "Реактивное программирование" и прочие. GromHoll 14.06.14 в 00:06 |
||
|
Хоть и были некоторые успехи, в определённых областях (обработка звука или проектирование микросхем), Святой Грааль так и не найден. GromHoll 14.06.14 в 00:10 |
+1 | |
|
В тоже время, менее амбициозный подход начинает набирать обороты. GromHoll 14.06.14 в 00:11 |
||
|
Многие недавние фреймворки используют "привязку данных". GromHoll 14.06.14 в 00:12 |
||
|
В отличии от более радикальных моделей, привязка данных не пытается полностью устранить императивный код и не пытается построить ваше приложение вокруг огромного декларативного потока данных. GromHoll 14.06.14 в 00:15 |
||
|
Она занимается тем, что автоматически настраивает UI элемент или вычисляет некое значение, чтобы отразить изменение некой величины. GromHoll 14.06.14 в 00:18 |
||
|
Как и другие декларативные системы, привязка данных достаточно медленная и сложная, что бы поместиться внутри ядра игрового движка. GromHoll 14.06.14 в 00:19 |
||
|
Но я был бы удивлён, если бы не увидел, как её начали применять в менее критичных областях игры, таких как UI. GromHoll 14.06.14 в 00:21 |
||
|
Тем не менее, старый добрый шаблон "Наблюдатель" всё ещё ждёт нас. GromHoll 14.06.14 в 00:22 |
||
|
Конечно, он не так интересен, как популярные техники, которым удаётся втиснуть в название сразу и "функциональное", и "реактивное", но он убийственно прост, и он работает. GromHoll 14.06.14 в 00:25 |
||
|
Для меня это два самых важных критерия для решения. GromHoll 14.06.14 в 00:26 |
