14

我想知道我是否以正确的方式使用干净的架构。我试图把它像这张图一样:

在此处输入图像描述

我读过包结构应该按用例排列,但我很难理解如何做到这一点。

先看一下我的包结构:

在此处输入图像描述 请注意,我不知道将活动真正放在 UI 文件夹中的哪个位置,您能推荐一下吗?有关系吗?

在数据文件夹中,我有用于存储库设计模式的存储库。 我的改造网络调用与 UI 文件夹处于同一级别。对于我的依赖注入框架也是如此。

阅读此出版物后,我开始担心我现在想知道我的包结构是否正确?

4

2 回答 2

11

Bob 大叔强调的一个方面是干净的架构令人尖叫。这意味着顶级结构和名称应该表达您的业务领域,而不是您使用的技术细节和框架。在第二层,我们应该把不同的圈子分开。

在电子商务应用程序中,诸如购物车、搜索和产品目录之类的东西将塑造顶级结构。用例、控制器和演示者将位于第二层。

我在这里写了关于这个的更详细的例子https://plainionist.github.io/Implementing-Clean-Architecture-Scream/

于 2018-02-04T22:43:51.533 回答
2

我建议你看看这个存储库。您可以从问题部分的讨论中获得很多反馈。我会专门阅读这个讨论

现在来回答你的问题。

  • 有关系吗?我会说不,没关系。包结构只是构造代码以使其更具可读性和可操作性的一种方便的方法。只要你尊重 Clean-Architecture 原则,你在哪里上课都没有关系。请记住,您始终可以在项目进展和项目增长时进行重构。
  • 把活动放在哪里?如果你已经在组件中分离了你的 UI 包,你应该坚持它并有一个活动文件夹。
  • 建议:首先我喜欢为每一层(例如数据、域、表示、基础设施......)设置一个包甚至一个模块,然后在每个包中您可以做出自己喜欢的决定。例如,我喜欢将表示层分成功能,但按组件将域和数据层分开。每一层都有一个模块的好处是,如果新开发人员要为项目做出贡献,您可以强制执行干净的架构原则,因为他们将无法引用域用例中的数据类。
于 2017-10-25T16:07:55.207 回答