清洁架构澄清

sai*_*int 13 architecture oop

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

http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html 在此输入图像描述

我有几个问题需要澄清:

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

谢谢

小智 30

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

  • 鲍勃叔叔本人,我很荣幸。只是为了确保,所以最好创建新的数据结构(即使它们可能相似或相同),假设它可能随着时间的推移而有所不同,并且在跨越边界时它会被转换为结构被内圈理解。 (2认同)

Mar*_*ann 7

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

  1. 最好是保持您的依赖图尽可能平坦.如果你跨越多个边界,那不是真正的界限.

  2. (见罗伯特马丁的回答)

  3. 除了罗伯特·马丁的书籍之外,您可能还想参考我的书" 依赖注入在.NET中",该书遵循相同的原则,并附带大量(.NET)示例代码.