- 表示层:顾名思义,这一层的关注点是用户看到或与其交互的内容。它包含UI逻辑,图形,表单,图像,.
- 域层:--这是处理业务逻辑的地方。如果你正在写一个博客,这一层包含像帖子、用户、评论等对象和实体。如果你在写一个金融系统,它们将是分类账、帐户、货币等等。你的系统中最有价值的代码依赖于这里,因为它们满足了用户的关注。
- 基础结构层:从经典意义上说,每个层都只访问底层,但有时这个层涵盖了多个层的关注点。所以我怀疑你能不能把这个称为经典意义上的一层。它包含应用程序范围广泛的抽象和基类,有时还包含交叉关注点等。
- 服务层::“处理域逻辑的一种常见方法是将域层分成两部分,将服务层放置在基础域模型上”,Martin,PoEAA。正如Martin在他的书中所说(我建议您阅读这本书),这是您的域之上的一个层,以使您的域的使用更容易。这样客户就不需要知道任何关于领域复杂性的信息了。里面有正面。同时也是处理安全性、事务管理等问题的好地方。
- 数据层:这个层管理存储逻辑。它可以是一个简单的文件,也可以是一些大型的关系数据库。在没有或很少有业务逻辑的简单项目中,数据层扮演“域层”角色,反之亦然。其实这不重要。重要的是,域模型和数据结构之间可能存在某种阻抗不匹配。数据层的主要关注点是为应用程序的其他部分(特别是域层)处理这一困难。
哪一层与数据通信?最重要的是域层。但这并不总是真的。假设您想在数据库中保存UI的一些用户首选项。因此,表示层也可以与数据层通信。实际上,任何层都可以与数据通信。重要的是,您应该使用模式和最佳实践(如IOC)来充分利用您的项目需求。
祝好运!