gpt4 book ai didi

java - Android 应用程序中的 MVP 与事件驱动

转载 作者:行者123 更新时间:2023-12-02 03:33:04 25 4
gpt4 key购买 nike

我假设您熟悉 MVP 和事件驱动模式。
据我所知,MVP 和事件驱动模式都是为了负责任地分离并提高可读性而设计的。但是使用像事件总线这样的库可以更容易地实现事件驱动。

我的问题是,既然您可以使用事件和订阅者模式分离方法职责,那么将应用程序架构更改为 MVP 有什么好处?

我的问题的第二部分是使用事件库(如 Eventbus)和 MVP 模式的可行性。

最佳答案

事件驱动架构用于通信。您可以使用它在应用程序中松散耦合的组件之间传输消息/事件。 好处:您摆脱了添加/删除组件的麻烦,即删除订阅者而不修改发布者等。

MVP 用于构建应用程序逻辑。它帮助您使业务逻辑远离 GUI,并引入 Presenter 作为处理 View 上的事件的中间人,涉及适当的 Model 来处理与每个 View 的事件相对应的业务逻辑,并将数据格式化到 View。 好处:它划定了 UI 逻辑和业务逻辑之间的界限,允许您测试业务逻辑甚至两种逻辑,而无需任何具体的 UI 内容。

现在是第一部分:由于最关心的是如何编写应用程序逻辑以及如何确保逻辑在应用程序中得到很好的实现(单元测试),MV* 可以帮助您,而不是 EventBus。

第二部分:是的,您可以将 EventBus/MessageBus 与 MVP 一起使用,因为它们负责不同的事情。例如,您使用 MVP 将 Fragment 构造为 View、Presenter 和 Model,并使用 EventBus/MessageBus 来实现 Fragment 与应用程序中的其他 Activity、Fragment 之间的通信。

提供 MessageBus 和 MVP 的实际框架在这里:http://robo-creative.github.io/mvp 。如果您想了解如何将它们结合起来,请阅读以下指南:http://robo-creative.github.io/mvp/presenter-features.html

关于java - Android 应用程序中的 MVP 与事件驱动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37798826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com