Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android

OOP

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки. 

Предыдущие части: Часть 1Часть 2, Часть 3.

Создание

Обычно мы создаем объекты в одном месте. Это может быть конструктор, «Строитель», метод «Статичной фабрики», «Абстрактной фабрики» или любой другой шаблон.

Бывают случаи, когда объекты, созданные фреймворком, требуют некоего дополнительного состояния, которое потребуется установить. Яркий пример тому — классActivityв Android. Этот класс создается Android-фреймворком. Мы можем только добавлять атрибуты через Intent.

Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android — IT-МИР. ПОМОЩЬ В IT-МИРЕ 2020

DRY

Долгое время, запуская активности и прописывая дополнения, я добавлял комментарий в начале классаActivityи указывал, что все дополнения нужны для правильного запуска Activity. Получалось нечто подобное:

Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android — IT-МИР. ПОМОЩЬ В IT-МИРЕ 2020

По мне так такие комментарии служили отличной документацией. Мне приходилось запускать TargetActivity из различных точек входа многих классов и везде прописывать startActivity(intent). Это нарушало принципы DRY: Don’t Repeat Yourself («Не повторяйся»).

По мере роста команды и разрастания базы кода с этим классом может произойти что угодно:

  • дополнений станет больше;
  • комментарии перестанут совпадать с новыми дополнениями;
  • ваша команда забудет передать какие-то дополнения;
  • вы забудете добавить новые дополнения в старые вызовы.

Статичный запуск

Чтобы не разочароваться при запуске приложения, лучше сразу определять все привязки внутри целевого класса. Для этих целей отлично подходит статичный метод запуска:

Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android — IT-МИР. ПОМОЩЬ В IT-МИРЕ 2020

В Android Studio для этих целей есть предустановленный шаблон:

Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android — IT-МИР. ПОМОЩЬ В IT-МИРЕ 2020

Так я смог избежать путаницы при поддержке проекта в 150 тыс. строк за 3 года.

Специально для сайта ITWORLD.UZ. Новость взята с сайта NOP::Nuances of programming