VIPER:干净的代码架构

软件开发体系结构(或设计模式)非常关键,是“一个人”必须决定并采取的非常重要且初始的步骤之一(此处“一个人”是指软件开发者 😐😐,这是上帝的创造,可以将Coffee转换为软件 )。 在开发软件时遵循设计模式非常重要(当我这么说时,请相信我,我遇到了一些甚至不知道什么是“设计模式”但在App Store中拥有其应用程序的人。😶),因为它不仅是一种文件夹结构,但不止于此…。 对我来说,当您说您遵循特定的体系结构时,您应该至少了解以下几点:

  1. 您需要知道如何将每个功能部件定义和划分为责任,并将这些任务分配给不同的部分(类)。
  2. 始终注意实现的类之间的正确通信流程。
  3. 经过几分钟或几小时的思考,您编写的代码是可维护的,并且可以由任何其他“人员”进行增强(此处的“人员”也是软件开发人员)。

作为专业的iOS开发人员,我尝试了一种非常著名的最新架构VIPER

VIPER是当今世界范围内使用的一种设计模式,是您在进行大型项目时可以参考的最简洁的体系结构之一。 Viper是一种面向协议的编程以及模块化方法。 所有模块都分为5个不同的部分(类),每个部分都有其责任。 这些类必须仅执行特定任务,然后将所需结果传递给其他任务(如果需要)。

分解模块的5个不同部分或类是:

  1. 视图-视图包含您的所有UI元素。 每当发生用户交互时,View都有责任将信息传递给Presenter。
  2. 交互器-交互器是模块的大脑。 它包含不同的业务逻辑并使用案例实现。
  3. 演示者-演示者将获取的数据从View传递到Interactor,以根据业务逻辑进行进一步处理。 经过进一步处理后,交互器将数据传递给Presenter,然后将其传递给View以更新UI。 演示者还与路由器进行交互以执行导航。
  4. 实体是指按照应用程序流程进行处理和更新的自然趋势的数据模型。 实际上,数据模型和视图的组合效果对用户而言是可见的。
  5. R外 -路由器负责所有与导航有关的任务,并在需要时传递任何数据。

这种职责分解称为“ 单一责任原则” 。 因此,它非常容易编写测试用例,这与其他在同一类中包含业务逻辑,UI处理,导航等内容的体系结构不同。

沟通流程

在上图中,您可以看到Interactor与其他两种类型的类进行通信

  1. API数据管理器
  2. 本地数据管理器

这些不是其他组件,而是Interactor的帮助程序方法,仅用于隔离职责,例如用于进行API调用的API数据管理器和用于处理数据持久性的本地数据管理器

现在,通过查看该图,您可以非常清楚地了解流程。 如果没有,我举个例子来解决。 假设您在登录屏幕上。 登录完成后,您必须显示仪表板。 因此,流程将是这样的: