【问题标题】:Redundancy in Android Model-View-Presenter between Model and View Adapter模型和视图适配器之间的 Android Model-View-Presenter 中的冗余
【发布时间】:2017-06-09 01:06:38
【问题描述】:

如果我们查看 Google 的 Model-View-Presenter (MVP) 的 Android 架构示例,尤其是这两行:

https://github.com/googlesamples/android-architecture/blob/todo-mvp/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksFragment.java#L357

https://github.com/googlesamples/android-architecture/blob/todo-mvp/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/source/TasksRepository.java#L50

我们看到Tasks的集合是多余的——一个以Map的形式存储在模型中,一个以List的形式存储在View的Adapter中。

这是必需品吗?列表是否可以存储一次,或者我们必须始终在模型和视图的适配器之间复制列表?如果它只需要存储在一个地方,那显然是在模型/存储库部分。

最重要的是,如果不需要复制对象列表,实现如何才能不复制它?

【问题讨论】:

    标签: android


    【解决方案1】:

    无论给定的示例是否使用它,我都可以在模型的存储库中创建一个集合,然后通过从视图片段的适配器中对集合的引用来访问该集合。因此不需要重复 - 集合在模型的存储库中,对集合的引用在它之外。

    【讨论】:

      【解决方案2】:

      我目前也面临同样的问题。我的方法和你一样,IE 将 lia 的引用存储在适配器中,而不是使用新的引用,因为如果需要,很容易对列表进行修改。需要注意的一点是,不要在另一个线程中修改列表,或者在没有 notifydatasetchanged 的​​情况下修改列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-09
        • 2012-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多