这是我的第一个真正的 android 应用程序,我想使用好的设计模式开始它,因为它会有点大,所以我可以轻松地管理我的代码。我可以在 Android 中同时使用 3 层架构和“MVC”吗?我在“.net”中使用它,这是一个很好的选择,但我不知道我是否可以在 android 中使用它。
我检查了这个问题,但我仍然感到困惑,我无法意识到 MVC 和 MVP 之间的区别,并且根据使用 n-tier with MVC 或 MVP to gether,我没有找到任何评论
这是我的第一个真正的 android 应用程序,我想使用好的设计模式开始它,因为它会有点大,所以我可以轻松地管理我的代码。我可以在 Android 中同时使用 3 层架构和“MVC”吗?我在“.net”中使用它,这是一个很好的选择,但我不知道我是否可以在 android 中使用它。
我检查了这个问题,但我仍然感到困惑,我无法意识到 MVC 和 MVP 之间的区别,并且根据使用 n-tier with MVC 或 MVP to gether,我没有找到任何评论
那里有许多指南,人们展示了可用的架构或崇拜一种架构作为标准,写了整本关于应用于现代问题的旧方法的书籍。与这些不同,这只是一个粗略的答案:
Android 鼓励您对活动/片段使用 MVC 或一些 MVC 变体 (MVP/MVVM/...)。您可以在整个应用程序上应用 3 层架构。
表示层
MVC 或变体应用于表示层。您的 Presenter/Controller 处理您的视图、膨胀和修改、ui 控件绑定(如 onclick 事件),可能是某些单独绑定到此视图的效果等等。
业务层
这是您的业务逻辑。您的工作流程、流程、规则、...
数据层
数据处理就在这里。
其他
对于可维护性和测试而言,将内容保留在这 3 层中是一个好的开始。这是我的应用程序的基本轮廓,无论是在 Android 还是 iOS 上,但我并不总是将所有内容都压入这 3 层。例如,用于扫描蓝牙设备、在后台进行下载(或其他后台服务和任务)或添加带有全套控件的相机预览的组件。我将它们分开以供重复使用,而无需编写和导入库。
您可以认为 MVC 中的 Model 和 View 分别对应于 3 层(如果您愿意,可以选择 3 层)的 Intermediate(业务逻辑)和 Presentation。
假设 MVC 中的模型包含数据层,那么模型将对应于中间层和数据访问层。我将其称为 Model1。
如果您在此模型 1(中间和数据访问层)和视图(演示)之间引入控制器,那么您将拥有 MVC/3 层架构。
但是如果你禁止 View 更新 Model1,那么你就会有一个 3-tier/MVC 架构,即视图不能直接更新模型的架构,就像 3-tier 一样,为此我把前面3层的名字。
一般来说,回答这个问题,是的。
根据 MVC(或 MVP)的定义,有三层(虽然不是线性的,而是三角形的)。
没有什么能阻止 Android 中真正的 n 层架构。例如,您可以使用 XMLSharedPreferences
平面文件或 SQLite 作为持久性数据层,然后将SqliteOpenHelper
类作为读取和写入数据的下一层,然后将其传递给 anAdapter
并显示在一些ListView
.
离开本地文件系统,您使用网络请求与一些远程 API 层进行通信,该 API 层与其数据存储层进行通信。