存储层和实体 类

Storage layer and entity classes

根据我正在阅读的书,在三层架构(表示、应用、存储)中,存储层负责管理数据在系统中的持久化存储。如果是这样,我认为实体 类 在应用程序 layer.Is 中,对吗?什么类会在存储层?实体类和存储层类有什么区别?能举几个例子吗?

实体是低端数据库"parts"。它们代表您为了持久性而放入数据存储中的点点滴滴。 UML 使用类似于 tape/head 的构造型(如果仍然有人记得那是什么的话):

边界的刻板印象类似于屏幕(或者您可以将其视为某种投影)。边界向参与者提供一些信息。

控件原型类似于一个转轮(您认为正在完成的工作),它隐藏了不对边界事件和 changes/reads 实体做出反应的业务逻辑。

您也可以使用矩形表示法:

编辑 正如@www.admiraalit.nl 指出的那样,这种表示法不是上层结构本身的一部分(因此不是基本的 UML),而是各种 UML 配置文件中常用的表示法。

这里没有一个真理。人们有不同的看法,也有自己的定义。

您已使用 UML 标记标记了您的问题,但 UML 并未定义诸如 "storage layer" 或 "entity class" 之类的内容。

您已使用 "ecb-pattern" 标记标记了您的问题,但此模式定义了逻辑层并且未规定特定的物理层,反之亦然,物理层未规定逻辑层。你说的三层架构很可能是物理分层。每个物理层可能使用也可能不使用 ecb 模式。这是软件架构师的决定。

大多数作者将存储层定义为由通常是关系型 (RDBMS) 的数据库管理系统 (DBMS) 实现,其中不使用 classes 等面向对象的概念。在这种情况下,如果使用 ecb 模式,实体 classes 是应用层的一部分 and/or 表示层。

示例 1:实体 class 人可以是应用层中的 class,它通过向 RDBMS(= 存储层)发送 SQL 消息来持久化自身。 Class Person 通常也会实施业务规则,例如 "date of birth should be in the past"。

示例 2:实体 class Person 可以是表示层中的 class,它通过向应用层发送消息来持久化自身,其中不使用 ecb-pattern (假设)。