最近,我正在学习ORM (对象关系映射)和三层体系结构风格(表示、业务和数据持久性)。如果我正确理解,我可以将数据持久层划分为DTO和DAO层。
我想了解,以下几个部分是如何在数据持久层中协同工作的。
在上面我了解到
在大型应用程序中,MVC只是N层体系结构的表示层。
我真的很困惑,比如在3层体系结构风格中,MVC只是表示层,DTO、DAO、DAL只是数据持久层的一部分。我完全迷路了。
如果有人能告诉我这件事是怎么发生的,我会很高兴的。
请不要结束这个问题,因为很多不同的表达,我看到它到处都是相关的东西,基本上在大的应用程序中,我无法想象它是如何工作的。
我很感激你的回答!
发布于 2016-06-10 14:56:16
让我们从每一个目标开始:-
DTO
数据传输对象。它们通常用于将数据从控制器传输到客户机(JS)。术语也用于POCOs/POJO,它实际上保存了从数据库检索的数据。
DAO
数据访问对象是实现DAL的设计模式之一。它在数据库上构建并执行查询,并使用各种其他模式(包括“查询对象”、“数据映射器”等)将结果映射到POCO/POJO。DAO层可以使用“Repository”模式进一步扩展。
DAL
数据访问层使用DAO/Repository/POCO等抽象您的数据库活动。ORMs帮助您构建DAL,但它也可以实现而无需使用它们。
MVC
模型视图控件是一种模式,用于将视图(表示)与业务逻辑分离。对于MVC,DAL的实现与否并不重要。如果DAL没有实现,那么数据库逻辑就直接进入您的模型,这不是一种好的方法。
在大型应用程序中,MVC只是N层体系结构的表示层。
如上面所述,模型消耗了您的大部分业务逻辑。在N层应用程序中,如果业务逻辑为了跨应用程序/平台的可重用性而完全分离,则MVC中的模型称为贫血模型。如果不需要在应用程序中按此规模重用BI,则可以使用Model来保存它。没有混乱,对吧?
如果有人能告诉我这件事是怎么发生的,我会很高兴的。
所有MV*模式只定义想法/概念;它们不定义实现。MV*模式主要侧重于视图与BI的分离。专注于这件事。
有关保存数据的不同对象的详细信息,请参阅this答案。
发布于 2020-05-03 10:28:08
您可能需要首先区分MVC模式和3层体系结构。总括而言:
3层架构:
现在,对于上面的3层体系结构,MVC模式发生在它的表示层(对于webapp):
典型HTTP请求的生命周期:
https://stackoverflow.com/questions/37644957
复制相似问题