整洁架构
架构设计
Data Layer(数据层)
仓储模式(Repository Pattern)是存在于业务和数据库之间单独分离出来的一层,是对数据访问的封装。
- 业务层无需知道具体实现达到分离关注点
- 提高对数据访问的维护,对于仓储的改变并不改变业务的逻辑
接口
1 | public interface TasksDataSource { |
Domain Layer (领域层)
- 包含所有的业务逻辑
- Use case 定义应用程序需要的操作
- 该层是一个纯Java模块,没有任何Android依赖项
Task Domain
1 | public final class Task { |
1 | public class CompleteTask extends UseCase<CompleteTask.RequestValues, CompleteTask.ResponseValue> { |
Statistics Domain
1 | public class Statistics { |
1 | public class GetStatistics extends UseCase<GetStatistics.RequestValues, GetStatistics.ResponseValue> { |
Presentation Layer (表现层)
- 根据Domain Layer的数据进行界面显示
将业务逻辑移动到领域层中更小粒度的Use case,避免Presenter的代码重复
Presenter
1 | public class TasksPresenter implements TasksContract.Presenter { |
Test
- Presentation Layer (表现层):小型/中型测试, Robolectric、Espresso
- Domain Layer (领域层):小型测试,Junit、Mockito
- Data Layer(数据层): 小型/中型测试,Robolectric(因为该层具有android依赖项),Junit、Mockito
中型测试
1 | (AndroidJUnit4.class) |
小型测试
1 | public class TasksPresenterTest { |
示例(Java)
android/architecture-samples
https://github.com/android/architecture-samples/tree/todo-mvp-clean
推荐(Kotlin)
android10/Android-CleanArchitecture-Kotlin
https://github.com/android10/Android-CleanArchitecture-Kotlin
关于
欢迎关注我的个人公众号
微信搜索:一码一浮生,或者搜索公众号ID:life2code