【问题标题】:How to Implement MVI in Android using just Java如何仅使用 Java 在 Android 中实现 MVI
【发布时间】:2021-12-30 00:01:48
【问题描述】:

请问有没有人提供一个资源链接来帮助学习如何使用 mvi 设计模式创建应用程序,但所有代码都应该是 Java 而不是 Kotlin

【问题讨论】:

    标签: android design-patterns


    【解决方案1】:

    点击之前!这是在Kotlin -> https://tech.olx.com/mvi-architecture-in-android-a-simple-livedata-based-approach-b4b23896fd32 但是如果你真的看一下代码 sn-ps 没有一行没有明显的Java 对应部分。在任何地方都没有像FlowScopingCoroutine 这样的Kotlin 独家项目。

    您无需学习Kotlin 即可理解它,只需阅读即可。

    文章将MVI 解释为使用MVVM 的一种修改方式。

    它有 2 个(ViewState/ViewEffect) 被视图观察到的组件(Fragment/Activity)

    它有 1 个 (ViewEvent) 组件,视图使用该组件来触发上面观察到的组件的变化。

    ViewState:它包含您的数据,如List,如boolean,用于确定某事是否为enabled,等等... 当任何状态数据发生变化时,例如对List 的更新,observer 会接收所有内容并更新所有内容。

    ViewEffect :这些是一种“效果”,例如开始动画,制作toast。当您不关心效果的状态时,您将使用新数据更新它。就像我不在乎屏幕上是否还有另一个toast,atm。只需用新信息制作一个新的,然后展示它。

    ViewEvent :这允许ViewModel 接收来自view 的事件并启动“更新”过程。如果在view 中单击一个按钮,view 所做的就是向ViewModel 发送一个ViewEvent,说明已单击的内容。然后ViewModel 根据收到的ViewEvent 更新ViewState/ViewEffect,然后传播到视图。

    【讨论】:

    • 您以前是否在纯 java 中做过此操作,如果是,将非常感谢您提供代码链接。还有什么方法可以在java中拥有与kotlin一样的数据类和密封类
    • data = POJOsealed = abstract。这是其余的转换。 medium.com/asos-techblog/…
    • 谢谢,这无疑是一个救命稻草,是时候在 java 中玩转 mvi 了。大声笑
    猜你喜欢
    • 2019-07-24
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多