Android applications predominantly use Model View Presenter
design pattern.
1. Model: This is the domain model of the Android
application. It contains the business logic and business
rules.
2. View: These are the UI components in your application.
These are part of the view. Also any events on UI
components are part of view module.
3. Presenter: This is the bridge between Model and View to
control the communication. Presenter can query the model
and return data to view to update it.
4. E.g. If we have a Model with large news article data, and
view needs only headline, then presenter can query the
data from model and only give headline to view. In this
way view remains very light in this design pattern.
https://medium.com/@ahmadkazimi/6-design-patterns-every-android-developer-must-know-53d912b5864b