我已经阅读了有关MVC,MVP和MVVM体系结构的文章,但是对于如何在iOS应用中创建每种体系结构我并不满意。我需要为每种架构使用哪些类/控制器文件。如果我们与Storyboard / Xib /以编程方式一起使用,它们之间有什么区别?
因为我正在为iOS应用程序使用Xcode默认MVC结构,但是我想用MVVM结构创建我的新项目,但是我不确定如何创建该结构。
任何帮助将不胜感激。
提前感谢。
在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)”。