Bál*_*Pap 15 model-view-controller orm dao data-access-layer dto
最近我学习了ORM(对象关系映射)和3层架构风格(表示,业务和数据持久性).如果我理解正确,我可以将数据持久层分成DTO和DAO层.
我想了解,以下部分如何在数据持久层中一起工作.
最重要的是,我了解到了这一点
在较大的应用程序中,MVC是仅N层架构的表示层.
我真的很困惑,例如在3层架构风格中它是如何可能的,其中MVC只是一个表示层,而DTO,DAO,DAL只是数据持久层的一部分.我完全迷失了.
如果有人告诉我它是如何一起工作的真相,我会很高兴的.
请不要关闭这个问题,因为有许多不同的表达方式,我看到它到处都是这些东西基本上在大型应用程序中相互关联,我无法想象它是如何工作的.
我很感激任何答案!
Ami*_*shi 15
让我们从每个目的开始: -
DTO
数据传输对象.这些通常用于将数据从控制器传输到客户端(JS).POCO/POJO也被少数用于实际保存从数据库中检索的数据.
DAO
数据访问对象是用于实现DAL的设计模式之一.这将构建并执行数据库查询,并使用各种其他模式将结果映射到POCO/POJO,包括"查询对象","数据映射器"等.可以使用"存储库"模式进一步扩展DAO层.
DAL
数据访问层使用DAO/Repository/POCO等抽象您的数据库活动.ORM帮助您构建DAL,但也可以在不使用它们的情况下实现.
MVC
模型视图控件是一种模式,用于将视图(表示)与业务逻辑分开.对于MVC,DAL是否实现并不重要.如果未实现DAL,数据库逻辑只会进入您的模型,这不是一个好方法.
在较大的应用程序中,MVC是仅N层架构的表示层.
模型消耗了大部分业务逻辑,如上所述.在N层应用程序中,如果业务逻辑完全分离以便跨应用程序/平台重新使用,那么MVC中的模型称为贫血模型.如果BI不需要在您的应用程序中以该比例重复使用,则可以使用Model来保存它.没有混乱,对吗?
如果有人告诉我它是如何一起工作的真相,我会很高兴的.
所有MV*模式仅定义了想法/概念; 他们没有定义实现.MV*模式主要侧重于将视图与BI分离.请专注于此.
有关不同对象保存数据的详细信息,请参阅此答案
小智 6
您可能想首先区分 MVC 模式和 3 层架构。总结:
三层架构:
现在,对于上面的 3 层架构,MVC 模式发生在它的表示层(对于 web 应用程序):
典型 HTTP 请求的生命周期:
| 归档时间: |
|
| 查看次数: |
6891 次 |
| 最近记录: |