使用MVVM清理架构

在本文中,我们将特别讨论使用DDD,TDD和MVVM的iOS应用程序的Clean体系结构。

通过分层实现关注点的高级分离。 干净的体系结构看起来是一个非常仔细的思想和有效的体系结构。 它极大地认识了用例和实体之间的不匹配,并将前者置于我们系统的主导地位。它还旨在最大程度地独立于任何可能妨碍应用程序可测试性或替换性的框架或工具。 。

  • 实体:包含企业范围的业务规则。
  • 用例:包含特定于应用程序的业务规则。
  • 接口适配器:包含用于外围技术的适配器。 在这里,您可以期待MVC,网关的实现
  • 框架和驱动程序:包含诸如数据库或框架之类的工具。 默认情况下,您在这一层中不需要编写太多代码,但重要的是要清楚说明这些工具在体系结构中的位置和优先级。
  • 灵活
  • 可测
  • 容易明白
  • 高维护性
  • 可以与DDD等最佳做法很好地配合
  • 尖叫-用例在项目的结构中清晰可见
  • 复杂
  • 学习曲线:比其他样式更难掌握
  • 间接的-接口的数量可能超出人们的预期(我认为它不一定很糟糕,但是我看到人们指出了这一点)
  • 没有惯用的框架用法-在这个领域,依赖规则是无情的
  • 繁重的-从某种意义上讲,您最终可能会获得比当前项目中更多的类(同样,多余的类不一定很糟糕)

何时使用干净的体系结构:团队是否熟练和/或足够有信心,系统是否会比主要框架发布的版本有效? 系统是否会超过开发人员和利益相关者的就业机会?

  • 交付模式,例如(MVVM,MVC,MVP)
  • UIViews和UIViewController的位置
  • 完全独立于平台
  • 域的具体实现
  • 隐藏所有实施细节
  • 基本上,您的应用程序是什么以及它可以做什么(实体,UseCase等)。
  • 它没有实体之外的实现

下载样例项目

ITHHKN /带有MVVM的清洁架构

使用MVVM清理架构–在本文中,我们将了解如何使用以下方法为iOS应用程序实现清理架构:

github.com

参考:

https://github.com/sergdort/CleanArchitectureRxSwift

http://pguardiola.com/blog/clean-architecture-part-2/