MVC(模型-视图-控制器支架)是软件工程界的一种设计模式,已经存在了很多年。 使您的代码在Model,View和Controller之间具有单独的层始终是一件好事。 在iOS World中,MVC是默认的设计模式,因为苹果公司自己在开发生态系统中推荐了这种设计模式。 当您的应用需要保存数据以保存到设备或与服务器进行交互的功能时,MVCS设计模式对您的代码很有用,因为它将“ S”层与“ C”层分开。 那么,什么是“ S”层? MVCS(MVC存储/服务)是一种设计模式,可将数据库或网络交互与控制器分开。 出现此模式是因为Controller处理了许多不同的事情,因此需要对其进行简化。 有人说MVCN(用于联网的N)。 我将向您展示该模式如何在使用Alamofire和SDWebImage的简单网络项目中应用。 分组 这就是我在MVCS设计模式中的项目分组文件夹的方式。 层数 MVCS包含一些不同的层及其职责,分别是模型,视图,控制器和存储/服务。 视图 视图表示如何将数据呈现到视图。 此案例的情节提要文件负责此层。 在这里,我创建一个简单的视图,其中包含UIImageView和两个UILabel以向用户显示。 另外,将其连接到ViewController,以便我们可以通过代码与视图组件进行交互。 模型 我们将通过此链接获取JSON API,并将数据转换为该模型。 在这里,我使用quicktype.io从JSON API快速创建模型。 您可以在此处查看我的完整代码。 结论 MVCS是分离逻辑的一种很好的设计模式,因为每个组件都有自己的职责,但是MVC或MVCS并不总是正确的。 这取决于您的应用程序。 使用此模式,简单的应用会很好。 如果您的应用程序规模更大,我认为是时候转向另一种设计模式,例如MVVM(Model-View-ViewModel)或VIPER(View-Interactor-Presenter-Entity-Router)。