如果我的问题重复了,我很抱歉,我搜索了很多次,没有找到我的答案。
我在一个Spring-MVC项目中使用了VO,所以我很难找到我需要的东西。
是否可以使用包含所有视域表示(jsp)和页面状态(编辑、包含、排除等)的VO对象?
我需要存储更改的地址,包括,排除,因为在页面上的地址是可编辑的。
例如,此VO保存客户的所有地址、电子邮件、联系人,这些信息不在视图中,而是控制器中使用的信息。
页面上有弹出窗口,可以编辑/添加/删除地址、电子邮件和电话。
该页面包含一个包含其他信息的网格,我将其存储在VO中。
简而言之,我使用VO来存储页面的状态和使用视图所需的信息。在页面生命周期中,我使用它不需要去Hibernate很多次。
这是一个好的模式吗?
我忽略了Hibernate缓存?
在控制器中使用类作用域的VO是否打破了OOP的良好模式?
如果我没有在方法中传递VO by参数,并且使用"this“引用破坏了封装?
这个页面非常复杂,控制器大约有30个方法和1000行代码。
发布于 2015-12-20 18:35:10
这个页面非常复杂,控制器大约有30个方法和1000行代码。
首先,我不知道你的控制器里有什么,但是有1000行,我猜你把逻辑放在上面了。这是一个很大的错误,控制器应该从外部接收信息,并将该信息推送到感兴趣的部分。根本不应该有任何逻辑。
我从DDD,VO,
-MVC开始,然后我很难找到我需要的东西。
是否可以使用包含所有视域表示(jsp)和页面状态(编辑、包含、排除等)的VO对象?
我在你的帖子中没有看到任何关于域层和应用层的信息。我希望你实现了它。如何做到这一点,不是你问题答案的一部分。
这个VO保存着,例如,客户的所有地址、电子邮件、联系人,这些信息不在视图中,而是控制器中使用的信息。
模式,您正在讨论的不是Value Object,而是DTO (数据传输对象),它将不可变的数据从应用层发送到上层,例如MVC Framework。DTO和VO基本上是一样的,除了VO可以有逻辑,而DTO只是一个愚蠢的数据容器。
简而言之,我使用VO来存储页面的状态和使用视图所需的信息。在页面生命周期中,我使用它不需要去Hibernate很多次。
主要是you don't want to use your ORM/ODM framework for read data。多亏了这一点,你可以进行清晰的sql查询,跳过整个域层。
简而言之,我使用VO来存储页面的状态和使用视图所需的信息(...)在控制器中使用类作用域的VO是否打破了OOP的良好模式?
我真的不明白你为什么要这么做。DTO来自另一层,你的控制器的职责是将它推送到客户端(例如,将其转换为json ),仅此而已。
https://stackoverflow.com/questions/34372272
复制相似问题