Android. Программирование для профессионалов. 4-е издание


Для любознательных: синглтоны



Download 21,53 Mb.
Pdf ko'rish
bet191/485
Sana13.07.2022
Hajmi21,53 Mb.
#787165
1   ...   187   188   189   190   191   192   193   194   ...   485
Bog'liq
Android Programmirovanie dlya professionalov 4-e izdanie 2020 Fillips Styuart Marsikano Gardner


20sp
3dp
Для любознательных: синглтоны
Шаблон синглтон, используемый в 
CrimeRepository
— это
очень распространенное явление в Android. У синглтонов
(одноэлементных классов) не очень хорошая репутация,
потому что их часто неправильно используют, портя тем
самым обслуживаемость приложения.
Синглтоны часто используются в Android, потому что они
живут дольше, чем фрагмент или activity. Синглтон продолжает
существовать после вращения и переключения между разными
activity и фрагментами в приложении.
Синглтоны также удобны как владельцы ваших объектов
модели. Представьте себе более сложное приложение
CriminalIntent с большим количеством activity и фрагментов
для модификации преступлений. Когда один контроллер
модифицирует преступления, как убедиться, что обновленное
преступление было направлено на другие контроллеры?
Если 
CrimeRepository
— владелец преступлений и все
модификации преступления проходят через него, вносить
изменения становится гораздо проще. При переключении
между контроллерами вы можете передать ID преступления в


качестве идентификатора конкретного преступления и
заставить каждый контроллер забирать преступление целиком
из 
CrimeRepository
с помощью этого ID.
Однако у синглтонов есть несколько недостатков. У них,
несмотря на возможность хранения данных, ограниченный
срок жизни. Синглтон уничтожается вместе со всеми
переменными экземпляра, так как Android в какой-то момент
после переключения из приложения высвобождает память. То
есть они не подходят для долгосрочного хранения (тут нужна
запись файлов на диск или отправка на веб-сервер).
Синглтоны также затрудняют проведение модульных тестов
(мы поговорим о модульном тестировании в главе 20). Не
существует 
хорошего 
способа 
заменить 
экземпляр
CrimeRepository
болванкой. На практике разработчики
Android обычно решают эту проблему с помощью инструмента
под названием инжектор зависимости. Этот инструмент
позволяет объектам быть общими как синглтоны, в то же время
давая возможность заменить их в случае необходимости. Чтобы
узнать больше об инъекции зависимостей, прочитайте раздел
«Для любознательных: управление зависимостями» в главе 24.
И как мы уже говорили, у синглтонов есть потенциал
неправильного использования. Заманчиво использовать их
везде и всюду, потому что они удобны, — вы можете добраться
до них откуда угодно и хранить в них любую информацию,
которую нужно получить позже. Но когда вы делаете это, вы
избегаете ответов на важные вопросы: где используются эти
данные? где эта функция важна?
Синглтоны не отвечают на эти вопросы. В итоге их
повсеместное использование превращает программу в
большую свалку — непонятно, где что находится и зачем.
Таким образом, синглтоны могут стать ключевым
компонентом хорошо спроектированного приложения (при


правильном использовании).
2
Измеритель Браннока — прибор, созданный Чарльзом Бранноком в 1927 году,
для измерения длины стопы



Download 21,53 Mb.

Do'stlaringiz bilan baham:
1   ...   187   188   189   190   191   192   193   194   ...   485




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish