todo-mvp-clean Google官方Demo 学习

在以前的文章中,我们学习了使用MVP架构来制作App,而这次,我们选择MVP+Clean架构来设计App。我们还是选择Google官方Demo作为我们学习的教材,在Github上的地址如下:https://github.com/googlesamples/android-architecture/tree/todo-mvp-clean/

Clean架构:https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html

在此之前,需要先了解一下,什么是Clean结构?
在这里插入图片描述
在这里插入图片描述

这两张图,都是从Google Demo中复制过来的,上面一张是MVP+Clean架构,而下面一张则是MVP结构。从两张图中可以看到区别在哪里,clean架构比MVP多了一层domain layer。

Clean 一般是指,代码以洋葱的形状依据一定的依赖规则被划分为多层:内层对于外层一无所知。这就意味着依赖只能由外向内。

Presentation Layer
MVC 或者 MVP 对应的地方,不处理 UI 以外的任何逻辑。

Domain Layer
业务逻辑 Use Case 实现的地方。属于系统最内层。
这一层为纯 Java 代码,不牵扯任何 Android 相关依赖,规定了要做什么,具体实现细节交给外层。

Data Layer
所有系统需要的数据通过这一层的 Repository 获取, 这是一种 Repository 模式,具体看这里。Repository 接口定义是在 Domain 层,接口表示怎么去存储或者访问数据,这些是业务逻辑,但是具体的实现与业务逻辑无关,应该交给 Data 层。

从定义可以看出,Domain Layer分担了原来MVP架构中Presenter一部分的任务,避免了Presenter过厚的问题,同时又将部分逻辑独立出来,从而实现代码复用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值