首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Android

MVP 设计模式中, Service 属于什么层?

  •  
  •   xdygxh · 144 天前 via Android · 2200 次点击
    这是一个创建于 144 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做了一个传感器应用,很多 Activity 要和传感器交互,所以写了一个 Service,应该属于什么层?

    目前把它定义为 Model 层,因为它产生传感器数据!但是由于 mvp 中 Activity 不能直接和 Model 交互,所以用 presenter 传入 activity 进行服务绑定,但是经查 mvp 中 presenter 又应该是纯 java 类,绑定 service 显然掺杂了 Android。

    怎么实现比较好?

    5 回复  |  直到 2019-05-27 10:27:04 +08:00
        1
    jinhan13789991   144 天前 via Android
    你怕不是有什么误解,p 是纯 java 层,activity 继承 v 传递给 p,service 继承 m 传递给 p
        2
    cxtrinityy   144 天前
    MVP 主要是用于界面开发,你要先理解这一点,界面变化在 V 里处理,逻辑在 p 里处理
    明白了这些,就可以捋清楚了,一般会对 p 进行接口定义,然后具体什么类实现了这个接口,这个类就是具体的 p 实现,(即使你让 service 实现这个接口作为 p 本质上也没有问题,虽然在 android 里实际应用上有点问题)
    至于你的 p 是怎么处理逻辑的就无所谓了,你要调用 service 就调,并不影响 service 是什么角色,service 只是逻辑处理的一环
        3
    janus77   144 天前
    算是 M 层
    但是 MVP 里不是每个界面( V )都必须有独立的 M,也不是每个 M 都只服务一个界面。你这个属于多个界面共用 M 吧,不需要太过注重规范,甚至写成一个 manager 类 helper 类都没问题的
        4
    xdygxh   144 天前 via Android
    感谢大家,我确实对纯 Java 类有误解,我以为里面也不能出现 Android 的类。😓
        5
    misaka20   143 天前
    APP 分为三层架构或四层构架。 以三层构架为例: 数据层 - 业务层(Service) - 视图图(MVP、MVVM、MVC 等)。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2627 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 13:18 · PVG 21:18 · LAX 06:18 · JFK 09:18
    ♥ Do have faith in what you're doing.