Swift-MVC

MVVMMVPVIPER

几周以来,我一直在尝试了解有关iOS建筑模式的更多信息。 作为基本MVC的一部分,您可以找到有关MVVM,MVP和VIPER的一些不错的文章。

  • iOS架构模式
  • MVVM简介
  • 使用VIPER架构iOS应用

我不确定他们。 而且我还是很困惑。 最后, Bohdan Orlov在他的文章中说:“ 没有灵丹妙药, 因此选择架构模式只是在您的特定情况下权衡取舍的问题 ”。

我也有类似的想法。 当您可以使用更好的MVC时,为什么将所有架构决策押注在某种时髦的流行模式上?

MVC

我完全同意MVC被破坏的事实,因为View和Controller集成在同一文件中。 这是事实,使MVC成为谎言。

我还认为采用这种替代模式是因为Objective-C的功能不如Swift强大。 老实说,由于Swift,我们可以以其他方式使用MVC。 现在要容易得多。 扩展功能更加强大且显而易见。 结构和枚举现在是真实的模型结构。 易于理解和使用。

因此,如果使用MVVMMVPVIPER也很痛苦,为什么我们不简单地使用MVC

搜索图案

我想学习如何使用HealthKit Framework ,所以几天前开始了一个项目。

我正在使用该项目来发展和研究有关如何在Swift中使用MVC的想法。 距离完成还很遥远,但是我要坚持下去。 每天都在发展和更改代码。

Swift-MVC

线索之一是使用扩展来尽可能多地移出ViewController。

视图:UIViewControllerIt是View

  • 所有View Life Circle都在那里,因此仅将View代码放入ViewController中。

控制器:扩展

  • 将所有Delagate和Data Source代码添加到新的扩展文件中。
  • 我们通常将View Controller内部拥有的所有逻辑扩展到一个新的扩展逻辑文件。

模型

  • 结构和枚举。 将所有数据模式转换为新文件

通过这种结构,ViewController的长度为100行。

结论

我知道您将拥有很多文件夹。 但是,这是什么问题呢? 您更喜欢Massive View Controller还是内部包含少量代码的大量文件?

这就是我试图发展的想法。 你怎么看?

您可以在此处检查代码。 它在发展,所以明天可能会有所不同。