做了一个传感器应用,很多 Activity 要和传感器交互,所以写了一个 Service,应该属于什么层?
目前把它定义为 Model 层,因为它产生传感器数据!但是由于 mvp 中 Activity 不能直接和 Model 交互,所以用 presenter 传入 activity 进行服务绑定,但是经查 mvp 中 presenter 又应该是纯 java 类,绑定 service 显然掺杂了 Android。
怎么实现比较好?
1
jinhan13789991 2019-05-26 11:48:42 +08:00 via Android
你怕不是有什么误解,p 是纯 java 层,activity 继承 v 传递给 p,service 继承 m 传递给 p
|
2
cxtrinityy 2019-05-26 11:52:43 +08:00
MVP 主要是用于界面开发,你要先理解这一点,界面变化在 V 里处理,逻辑在 p 里处理
明白了这些,就可以捋清楚了,一般会对 p 进行接口定义,然后具体什么类实现了这个接口,这个类就是具体的 p 实现,(即使你让 service 实现这个接口作为 p 本质上也没有问题,虽然在 android 里实际应用上有点问题) 至于你的 p 是怎么处理逻辑的就无所谓了,你要调用 service 就调,并不影响 service 是什么角色,service 只是逻辑处理的一环 |
3
janus77 2019-05-26 13:51:00 +08:00
算是 M 层
但是 MVP 里不是每个界面( V )都必须有独立的 M,也不是每个 M 都只服务一个界面。你这个属于多个界面共用 M 吧,不需要太过注重规范,甚至写成一个 manager 类 helper 类都没问题的 |
4
xdygxh OP 感谢大家,我确实对纯 Java 类有误解,我以为里面也不能出现 Android 的类。😓
|
5
misaka20 2019-05-27 10:27:04 +08:00
APP 分为三层架构或四层构架。 以三层构架为例: 数据层 - 业务层(Service) - 视图图(MVP、MVVM、MVC 等)。
|