Http-запросы в Android: хорошее использование Singleton или статического класса?

Обычно мне не нравится использование синглетонов или статических классов, так как большую часть времени я могу реорганизовать их во что-то другое.

Однако в настоящее время я разрабатываю свою точку доступа к HTTP API в приложении для Android, и я думал, что у меня есть следующая среда:

  • Мне нужно отправлять HTTP-запросы в большинстве моих модулей кода (Activities).
  • Код для отправки запроса не зависит от отправляемого запроса
  • В приложении всегда будет только один конкретный пользователь за сеанс (в отличие от серверной части, которая должна обрабатывать разных пользователей и т. д.).

Поэтому я подумал, что это может быть ситуация, когда оправдано использование Singleton или даже статического класса для размещения HTTP-запросов. В остальной части моего кода мне просто нужно было бы использовать что-то вроде:

MyHttpAccess.attemptLogin(name, pass, callback)

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

Это кажется хорошим или плохим дизайном, и что я должен потенциально изменить?

Это нормально иметь синглтон, и если вы не передаете никаких сильных ссылок, таких как контекст, представления и т. д., вы также можете использовать статический. Я бы использовал синглтон с внедрением зависимостей. Если проект простой и использует Kotlin, то object LoginUtil { fun attemptLogin() {} } будет достаточно.

Rodrigo Queiroz 13.03.2019 01:32
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
58
1

Ответы 1

Http-запрос в kotlin с использованием одного класса

https://medium.com/@umesh8346/android-kotlin-api-integration-other-method-b5b84eb4f386

Другие вопросы по теме