首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VO作为视图状态的表示形式

VO作为视图状态的表示形式
EN

Stack Overflow用户
提问于 2015-12-19 23:21:17
回答 1查看 335关注 0票数 0

如果我的问题重复了,我很抱歉,我搜索了很多次,没有找到我的答案。

我在一个Spring-MVC项目中使用了VO,所以我很难找到我需要的东西。

是否可以使用包含所有视域表示(jsp)和页面状态(编辑、包含、排除等)的VO对象?

我需要存储更改的地址,包括,排除,因为在页面上的地址是可编辑的。

例如,此VO保存客户的所有地址、电子邮件、联系人,这些信息不在视图中,而是控制器中使用的信息。

页面上有弹出窗口,可以编辑/添加/删除地址、电子邮件和电话。

该页面包含一个包含其他信息的网格,我将其存储在VO中。

简而言之,我使用VO来存储页面的状态和使用视图所需的信息。在页面生命周期中,我使用它不需要去Hibernate很多次。

这是一个好的模式吗?

我忽略了Hibernate缓存?

在控制器中使用类作用域的VO是否打破了OOP的良好模式?

如果我没有在方法中传递VO by参数,并且使用"this“引用破坏了封装?

这个页面非常复杂,控制器大约有30个方法和1000行代码。

EN

回答 1

Stack Overflow用户

发布于 2015-12-20 18:35:10

这个页面非常复杂,控制器大约有30个方法和1000行代码。

首先,我不知道你的控制器里有什么,但是有1000行,我猜你把逻辑放在上面了。这是一个很大的错误,控制器应该从外部接收信息,并将该信息推送到感兴趣的部分。根本不应该有任何逻辑。

我从DDD,VO,

-MVC开始,然后我很难找到我需要的东西。

是否可以使用包含所有视域表示(jsp)和页面状态(编辑、包含、排除等)的VO对象?

我在你的帖子中没有看到任何关于域层和应用层的信息。我希望你实现了它。如何做到这一点,不是你问题答案的一部分。

这个VO保存着,例如,客户的所有地址、电子邮件、联系人,这些信息不在视图中,而是控制器中使用的信息。

模式,您正在讨论的不是Value Object,而是DTO (数据传输对象),它将不可变的数据从应用层发送到上层,例如MVC Framework。DTOVO基本上是一样的,除了VO可以有逻辑,而DTO只是一个愚蠢的数据容器。

简而言之,我使用VO来存储页面的状态和使用视图所需的信息。在页面生命周期中,我使用它不需要去Hibernate很多次。

主要是you don't want to use your ORM/ODM framework for read data。多亏了这一点,你可以进行清晰的sql查询,跳过整个域层。

简而言之,我使用VO来存储页面的状态和使用视图所需的信息(...)在控制器中使用类作用域的VO是否打破了OOP的良好模式?

我真的不明白你为什么要这么做。DTO来自另一层,你的控制器的职责是将它推送到客户端(例如,将其转换为json ),仅此而已。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34372272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档