【问题标题】:Can I Use 3-tiers architecture and "MVC" together in Android?我可以在 Android 中同时使用 3 层架构和“MVC”吗?
【发布时间】:2016-07-22 23:11:26
【问题描述】:

这是我的第一个真正的 android 应用程序,我想使用好的设计模式开始它,因为它有点大,所以我可以轻松地管理我的代码。 我可以在 Android 中同时使用 3 层架构和“MVC”吗? 我在“.net”中使用它,这是一个很好的选择,但我不知道我是否可以在 android 中使用它。

我检查了this question,但我仍然感到困惑,我无法意识到 MVC 和 MVP 之间的区别,并且我没有找到任何关于将 n-tier 与 MVC 或 MVP 结合使用的评论

【问题讨论】:

标签: android model-view-controller three-tier multi-layer


【解决方案1】:

那里有许多指南,人们展示了可用的架构或崇拜一种架构作为标准,写了整本关于应用于现代问题的旧方法的书籍。与这些不同,这只是一个粗略的答案:

Android 鼓励您将 MVC 或某些 MVC 变体 (MVP/MVVM/...) 用于活动/片段。 您可以在整个应用程序上应用 3 层架构。

表示层

MVC 或变体应用于表示层。您的 Presenter/Controller 处理您的视图、膨胀和修改、ui 控件绑定(如 onclick 事件),可能是一些单独绑定到此视图的效果等等。

业务层

这是您的业务逻辑。您的工作流程、流程、规则……

数据层

数据处理就在这里。

其他人

为了可维护性和测试,将事物保留在这 3 层中是一个好的开始。这是我的应用程序的基本大纲,无论是在 Android 还是 iOS 上,但我并不总是将所有内容都压入这 3 层。例如,用于扫描蓝牙设备、在后台进行下载(或其他后台服务和任务)或添加带有全套控件的相机预览的组件。我将它们分开以供重复使用,而无需编写和导入库的麻烦。

【讨论】:

    【解决方案2】:

    一般来说回答这个问题,是的。

    根据 MVC(或 MVP)的定义,有三层(虽然不是线性的,而是三角形的)。

    1. 演示文稿(查看)
    2. 逻辑层(控制器/演示器)
    3. 数据层(模型)

    在 Android 中没有什么能阻止真正的 n 层架构。例如,您可以使用 XML SharedPreferences 平面文件或 SQLite 作为持久性数据层,然后将 SqliteOpenHelper 类作为读取和写入数据的下一层,然后将其传递给 Adapter 并显示在一些 @987654325 @。

    离开本地文件系统,您使用网络请求与一些远程 API 层进行通信,该 API 层与其数据存储层进行通信。

    【讨论】:

    • 三层架构不同。它可能在它的一个层(表示层)中包含MVC,起初我也很困惑,但经过实际练习后我完全意识到了差异。@ 987654321@在开始使用3层和MVC但作为“.Net”我解释了我是如何在这个问题中将它们混合在一起的。
    【解决方案3】:

    您可以认为 MVC 中的 Model 和 View 分别对应于 3-tier(如果您愿意,可以选择 3-layer)的 Intermediate(业务逻辑)和 Presentation。

    假设 MVC 中的模型包含数据层,那么模型将对应于中间层和数据访问层。我将其称为 Model1。

    如果您在此模型 1(中间和数据访问层)和视图(表示)之间引入控制器,那么您将拥有 MVC/3 层架构。

    但是如果你禁止 View 更新 Model1,那么你就会有一个 3-tier/MVC 架构,即视图不能直接更新模型的架构,就像 3-tier 一样,对于这个为什么我把三层的名字放在前面。

    【讨论】:

      猜你喜欢
      • 2015-06-24
      • 2018-04-27
      • 2011-06-02
      • 2012-01-05
      • 2011-09-30
      • 2018-11-13
      • 1970-01-01
      • 2022-11-07
      • 1970-01-01
      相关资源
      最近更新 更多