Шаблоны проектирования

Шаблоны Проектирования и Unity3D — Часть первая (Агрегатор Событий)

Проработав некоторое время, в разных командах, и над разными проектами на Unity, я заметил нехорошую, по моему мнению, особенность — отсутствие дизайна кода и единой структуры. Пройдя похожий опыт с PHP несколько лет назад, да и учитывая что программистов много, а тех у кого подход а-ля «пока работает — не трогай» или «потом поправим» большинство, я уже сильно не удивляюсь.

Причин подобного явления может быть много, у меня даже есть несколько теорий (не Илюминаты — клянусь!), но пост не об этом. Вместо того чтобы бурчать себе под нос о том как же всё плохо, я решил написать серию постов о том, как по моему мнению стоит и как не стоит делать некоторые вещи. И начну я пожалуй с Паттернов Проектирования (Шаблонов Проектирования).

Я не претендую на звание «лучший кодер мира» и не заявляю что мой код и мои методы лучше каких либо других. Все посты в данной линейке должны восприниматься как моё личное мнение, основанное на моём же, личном опыте. Я с удовольствием прочитаю критику или советы, если такие будут.

Итак… С чего то нужно начинать, вот и начну я с Агрегатора Событий. Что же это такое? Тем кто знает Английский я рекомендую почитать вот эту статью. Для остальных приведу перевод описания:

Система с большим количеством объектов может оказаться в затруднительном положении, когда клиенту нужно подписаться на какие либо события. Клиенту нужно найти и зарегистрироваться у каждого объекта индивидуально, а если у каждого объекта есть несколько событий, тогда каждое событие требует отдельной регистрации.

Агрегатор Событий работает как единый источник событий для множества объектов. Он регистрируется на все события, всех объектов, позволяя клиенту подписываться на события только от него.

Перед тем как перейти к деталям, я бы хотел рассказать с какими ситуациями и вариантами я встречался, а так же почему не стоит пользоваться этими приёмами и методами. В данной статье я предоставлю задачу (и её решение), с минимальным количеством «участников», однако рекомендую вам представлять что это часть большого проекта, где увеличение объектов будет приводить к всё более плачевным результатам. Как именно? — Сейчас расскажу.

Продолжить чтение →

Опубликовано migs в Блог пост, Шаблоны проектирования, Юнити, 0 комментариев