模型类和dao类之间的区别

cdmah0mi  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(499)

我不熟悉基于java的web应用程序。我必须使用mvc结构创建一个动态web项目。到目前为止,我创建了三个包和一些java类,如下所示。我对这些事情有些怀疑
有人能解释一下模型类和dao类之间的区别吗
既然我使用的是mvc结构,我真的需要为daos创建一个单独的包吗?还是可以将所有dao类实现放在model类中?因为mvc意味着模型视图控制器

模型类

道类

isr3a4wc

isr3a4wc1#

有人能解释一下模型类和dao类之间的区别吗
这些是完全不同的事情。
dao是一种面向crud的数据服务(读取/创建/更新/删除数据),model是表示数据的对象。dao使用模型,但不使用相反的模型。
既然我使用的是mvc结构,我真的需要为daos创建一个单独的包吗?还是可以将所有dao类实现放在model类中?
因为dao和模型是两个不同的概念(虽然相关),所以在两个不同的包中分离它们的类似乎更清楚。

eqfvzcg8

eqfvzcg82#

dao类与持久化系统(通常是数据库)和控制器通信,并在它们之间移动模型类的示例。模型类表示您正在处理的真实世界的内容(例如,医院管理应用程序的患者、医生和预约,或者银行应用程序的客户、帐户等)。理想情况下,您的模型类甚至不应该知道有一个dao。所以是的,把它们放在不同的包里是有意义的,因为它们是不同的东西。请注意,即使你的应用程序遵循mvc模式,也不意味着你的应用程序只关注视图、模型和控制器。您可以而且通常会有其他关注点,比如持久性,它们属于它们自己的层。
另外一件事,你可能想做的,当我们在它,是有DTO。它们是模型实体的附加表示(但它们应该放在自己的包中,而不是模型包中),但是dto不必具有与模型类相同的属性。DTO是控制器应该提供给视图的内容。这样,您的视图就不知道您的模型,并且您不会向视图层公开您不想公开的模型类的任何属性。例如,如果您有一个客户模型类,其中包含有关其信用卡号的信息,但您有一个视图不需要显示该信用卡号,则可以创建一个包含其他客户数据的dto,并将其用于该视图,而无需将不需要的数据发送到您的视图。

相关问题