Search
Write a publication
Pull to refresh

Comments 2

Я достаточно юн в разработке и не участвовал в больших коммерческих проектах, но как у Вас в этом случае работает правило единого источника правды?

Не правильнее было бы использовать потоки?

Понятие единого источника правды находится немного в другой плоскости.
Представим, что у тебя есть экран выбора контактов (не системный, а самописный) и тебе нужно, чтобы этот экран можно было открыть из разных частей приложения, чтобы получить номер телефона. В реализации экрана выбора контакта источником правды является системный провайдер контактов. В фиче, которая использует твой экран выбора контакта, может быть свой источник правды. Но в рамках перехода между экранами как будто не совсем корректно применять это понятие.
Если абстрагироваться от экранов и библиотек, то выбор контакта можно было бы реализовать так:

openContactSelector { selectedContact -> doSomething(selectedContact) }

или так:

val selectedContact = selectContact()

В таких упрощенных примерах если и можно применить правило единого источника, то как минимум оно не будет нарушаться. На этих же примерах понятно, почему не используется поток – в нем просто нет необходимости для разового получения.
Надеюсь, ответил на вопрос

Sign up to leave a comment.