Size: a a a

Android Architecture

2020 February 02

Y

YorkIsMine in Android Architecture
Алексей Ершов
Ага, а презентер как вызывает фрагмент?
Может я что-то не так понял) Но в целом например мы хотим выполнить логику при
нажатии на кнопку, то в листенере вызываем презентер
источник

Y

YorkIsMine in Android Architecture
Или я что-то не так все понял
источник

Y

YorkIsMine in Android Architecture
Ну вообще по Мартину за ввод отвечает контроллер
источник

Y

YorkIsMine in Android Architecture
А за вывод презентер
источник

AD

Aleksey D. in Android Architecture
Алексей Ершов
Написано же в статье) депрекейтед. Ну и не моя статья, спросите автора, ответит.
фрагменты-то не дипрекейтили пока
источник

AD

Aleksey D. in Android Architecture
видимо, только из-за этого
> It is strongly recommended to use ViewModels to store non-configuration state as they offer a composable solution suitable for any ViewModelStoreOwner that makes the ownership of the retained objects clear and provides an onCleared() callback for cleaning up resources when the activity is finally destroyed.
источник

АЕ

Алексей Ершов in Android Architecture
YorkIsMine
Может я что-то не так понял) Но в целом например мы хотим выполнить логику при
нажатии на кнопку, то в листенере вызываем презентер
Я веду к тому, что фрагмент у вас обычно спрятан за интерфейсом View. Этот интерфейс своего рода Output для презентера, он через него выводит данные. Можно заменить фрагмент на что угодно, и всё будет работать.
А вот фрагмент жестко завзан на презентер, потому что вызывает конкретные методы конкретного класса. Неполная граница.
Хотите сделать полную - надо сделать интерфейс для презентера, и обращаться во фрагменте только к интерфейсу. Это уже полная граница, но кода и мороки стало больше. Поэтому все забивют, и довольствуются односторонней границей, потому что несколько разных реализаций презентеров бывает редко.
источник

АЕ

Алексей Ершов in Android Architecture
Aleksey D.
видимо, только из-за этого
> It is strongly recommended to use ViewModels to store non-configuration state as they offer a composable solution suitable for any ViewModelStoreOwner that makes the ownership of the retained objects clear and provides an onCleared() callback for cleaning up resources when the activity is finally destroyed.
Да, просто попытка использовать стандартный компонент по рекомендации гугла.
источник

Y

YorkIsMine in Android Architecture
Алексей Ершов
Я веду к тому, что фрагмент у вас обычно спрятан за интерфейсом View. Этот интерфейс своего рода Output для презентера, он через него выводит данные. Можно заменить фрагмент на что угодно, и всё будет работать.
А вот фрагмент жестко завзан на презентер, потому что вызывает конкретные методы конкретного класса. Неполная граница.
Хотите сделать полную - надо сделать интерфейс для презентера, и обращаться во фрагменте только к интерфейсу. Это уже полная граница, но кода и мороки стало больше. Поэтому все забивют, и довольствуются односторонней границей, потому что несколько разных реализаций презентеров бывает редко.
То есть если во фрагменте какое-нибудь PresenterImpl используется то граница не полная
источник

Y

YorkIsMine in Android Architecture
А если сделать так, как я писал во 2 вопросе, то это уже будет полная граница?
источник

АЕ

Алексей Ершов in Android Architecture
Если создание презентера вынести куда-то в DI, то наверное да
источник

Y

YorkIsMine in Android Architecture
Просто по идее должно быть, что Presenter p = new PresenterImpl() это неполная граница
источник

АЕ

Алексей Ершов in Android Architecture
так и есть
источник

A

Azamat in Android Architecture
YorkIsMine
Просто по идее должно быть, что Presenter p = new PresenterImpl() это неполная граница
Это книга по ca?
источник

Y

YorkIsMine in Android Architecture
Azamat
Это книга по ca?
Да
источник

Y

YorkIsMine in Android Architecture
Алексей Ершов
так и есть
Но ведь вы говорили, что если конкретный тип указан, то это неполная граница
источник

Y

YorkIsMine in Android Architecture
А если тип интерфейса, то полная
источник

Y

YorkIsMine in Android Architecture
Так как быть?)
источник

АЕ

Алексей Ершов in Android Architecture
YorkIsMine
Но ведь вы говорили, что если конкретный тип указан, то это неполная граница
Вы ведь всё равно использовали конкретный тип, значит всё равно от него зависите.
источник

Y

YorkIsMine in Android Architecture
Извиняюсь, что не понимаю. Каша в голове капитальная. IClass c = new ClassImpl чем является?  ClassImpl c = new ClassImpl чем является? Какими границами?
источник