Clean 构架

clean 架构是一种"分层架构",源代码依赖只能由外部指向内部,内部圈子里人是不知道外部圈子的任何东西的。
特别是声明在外部圈子中的类、函数、变量或者其他软件实体。

image2020-6-21_15-5-29.png

Entities: 表示具体的业务规则
Use Cases: 该层包含应用程序特定的业务规则,它封装并实现了系统的所有用例。这些用例
决定着实体中数据的流动。 这一层的变动不应该影响到实体,同时也不应该受到外层的影响。
Presenters: 在这一层,数据从对实体和用例最方便的形式转换为方便外部 UI 的格式。我们通常
使用 MVC 、MVP、MVVM 等 UI 框架。

在 Android 中应用
为保持业务规则对外部世界一无所知来实现关注点分离,以便在不依赖与外部元素的情况下进行测试,
建议将项目分为 3 个不同的层次,每次层次都有自己的目的,与其他层分开工作。每个层都使用自己的
数据模型,因此可以实现这种独立性。

image.png

Presentation Layer

进行业务视图的渲染,View 与 动画在这里进行交互。可以使用 MVP 或 MVVM 来实现

Domain Layer

所有的业务逻辑发生在这一层,所有的交互(用例)在这里进行实现。该层是一个纯 Java 模块,将不依赖

任何 android 的东西。

Data Layer

应用程序所需要的数据全部来自这一层,比方说通过 id 从网络获取用户的信息。

优点:

  • Independent of Frameworks. 独立于框架
  • Testable. 可测试的
  • Independent of UI. 独立于用户界面
  • Independent of Database. 独立于数据库
  • Independent of any external agency. 独立于任何外部机构

你可能感兴趣的:(Clean 构架)