清洁架构澄清

时间:2014-03-16 20:14:20

标签: oop architecture

我一直在从鲍勃叔叔那里读到这篇文章:

http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html enter image description here

我有几个问题需要澄清:

  1. 外圈可以指向内部跨越多个边界。例如,控制器可以访问实体中的数据结构吗?
  2. 企业业务规则与应用程序业务规则之间有何区别。例如stackoverflow之类的区别是什么? stackoverflow的应用程序业务规则和企业业务规则是什么?
  3. 是否有我可以参考的示例代码,主要关注Web应用程序。
  4. 由于

2 个答案:

答案 0 :(得分:29)

  1. 最好是圆圈不跨越多个边界。知识应该是有限的。
  2. 企业规则是适用于多个应用程序的规则。应用程序规则特定于一个应用程序。基于堆栈溢出的想法有很多应用程序,它们共享许多相同的业务规则。这些规则将是企业规则。但是只有一个堆栈溢出。使其独一无二的规则是应用程序规则。
  3. 是的,有很多例子。只需搜索“清洁架构示例”。如果你有我的两本书中的任何一本:“敏捷软件开发:原理,模式和实践”或“C#中的敏捷打印,模式和实践”,那么工资单案例研究就是这种架构的一个很好的例子。

答案 1 :(得分:7)

除了罗伯特·马丁的回答,我还想补充一下。

  1. 如果你能keep your dependency graph as flat as possible,那就最好了。如果您越过多个边界,那么它们并不是真正的界限。

  2. (参见Robert Martin的答案)

  3. 除了罗伯特·马丁的书外,您可能还想参考我的书Dependency Injection in .NET,它遵循相同的原则,并附带大量(.NET)示例代码。< / p>