鲍勃叔叔的清洁架构方法 - 推荐的包结构是什么?

时间:2017-10-23 07:59:23

标签: android architecture mvp clean-architecture

我想知道我是否以正确的方式使用干净的架构。我想把它放在这个图上:

enter image description here

我已经读到包装结构应该按用例排列,但我很难跟踪如何做。

让我们来看看我的包结构:

enter image description here 请注意,我不知道将活动放在UI文件夹中的哪个位置,您能推荐一下吗?有关系吗?

在数据文件夹中,我有我用于repository design pattern.的存储库 我的改装网络呼叫与UI文件夹处于同一级别。同样适用于我的依赖注入框架。

在阅读this publication之后,我的担忧就出现了,我现在想知道我是否正确地完成了包结构?

2 个答案:

答案 0 :(得分:3)

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

在电子商务应用中,购物车,搜索和产品目录等内容将塑造顶级结构。用例,控制器和演示者将位于第二级。

我在此处发布了有关此内容的更详细示例https://plainionist.github.io/Implementing-Clean-Architecture-Scream/

答案 1 :(得分:1)

我建议你看一下repository。您可以从问题部分的讨论中获得大量反馈。我将特意阅读discussion

现在回答你的问题了。

  • 有关系吗?我会说不,没关系。包结构只是构造代码的一种方便的方式,使其更具可读性和可扩展性。只要您尊重清洁架构原则,您的课程在哪里都无关紧要。请记住,在进展和项目不断发展的过程中,您始终可以进行重构。
  • 活动在哪里?如果您已经在组件中分离了UI包,则应该坚持使用它并拥有一个活动文件夹。
  • Recomendations:首先,我希望每个图层都有一个软件包甚至是一个模块(例如数据,域,演示文稿,基础架构......),然后在每个软件包中,您可以根据自己的喜好制定自己的决策。例如,我喜欢将表示层分离为功能,但是按组件分隔域和数据层。为每个层创建一个模块的好处是,如果新开发人员要为项目做出贡献,您可以强制执行干净的体系结构原则,因为它们无法在域用例中引用数据类。