还有,Martin Fowler
says
关于POJO:
在演讲中,我们指出了将业务逻辑编码为常规java对象而不是使用实体bean的许多好处。我们想知道为什么人们如此反对在他们的系统中使用规则对象,并得出结论,这是因为
,它很受欢迎。
以下是
非常松散
对于常用的不同术语:
关系模型[数据库层]:
域模型/业务模型[业务逻辑/服务层]:
DTO:
-
仅保存状态,用于将数据从一层传输到另一层。
-
-
最好是可序列化的。
-
针对请求层设计;与数据库不同。
-
没有自己的身份。
POCO:
-
-
可用于任何ORM的持久性无关对象。
-
保存数据库中的数据。
-
不一定可以序列化。
-
-
可能具有验证逻辑或与POCO紧密绑定的其他逻辑(如数据加密/列的唯一性)。
-
没有诸如Get、Save等持久性方法。POCO本身不会填充。
-
可能有自己的身份。
实体:
-
-
对象,该对象可以使用DataContext从数据库加载并保存到数据库。
-
没有其DataBaseContext就无法存在。
-
与特定ORM紧密结合并实现其规则(默认构造函数、用于创建运行时代理的虚拟属性等)。
-
型号:
-
用于表示保存数据的任何对象的通用术语。
-
上面的所有对象,如果我们把其中任何一个放在MV*模式中,它就会成为模型。
https://stackoverflow.com/a/37751345/5779732
https://stackoverflow.com/a/42801839/5779732