如何在iOS Xcode项目中创建MVP和MVVM体系结构

问题描述 投票:2回答:2

我已经阅读了有关MVC,MVP和MVVM体系结构的文章,但是对于如何在iOS应用中创建每种体系结构我并不满意。我需要为每种架构使用哪些类/控制器文件。如果我们与Storyboard / Xib /以编程方式一起使用,它们之间有什么区别?

因为我正在为iOS应用程序使用Xcode默认MVC结构,但是我想用MVVM结构创建我的新项目,但是我不确定如何创建该结构。

任何帮助将不胜感激。

提前感谢。

ios model-view-controller mvvm mvp
2个回答
1
投票

这是这些设计模式的许多变体的过度简化,但这是我想考虑两者之间的差异的方式。

MVC

“

MVP

“在此处输入图像描述”

MVVMenter image description here

有关更多信息,请参见here


0
投票

在MVVM中,视图(实际上是UIViewController)向视图模型询问信息。

textLabel.text = viewModel.textToShow

视图模型表示了构建UI所需的所有内容。视图向视图模型询问这些值(例如,显示什么字符串)。

在MVP中,演示者告诉View该怎么做。

view.showText(textToShow)

视图控制器实现将此请求转换为视图控制器详细信息的协议:

func showText(_ text: String) {
    textLabel.text = text
}

以下是MVP的示例:https://stackoverflow.com/a/54499119/246895。有关使用重构实现MVP的示例,请参见iOS Unit Testing by Example: XCTest Tips and Techniques Using Swift的第19章“重构:移至Model View Presenter(MVP)”。

© www.soinside.com 2019 - 2024. All rights reserved.