Web应用程序中对象创建的设计模式

时间:2014-02-04 22:12:16

标签: java hibernate object design-patterns web-applications

我正在寻找处理java web应用程序中对象创建和更新的“正确”方法。

假设我拥有3个级别的架构: Web UI 数据库。 我还有一个类WebPage(标题,描述,网址),带有hibernate映射。

显然,我需要至少在数据库级别使用WebPage,并且很可能也在级别使用__WebUI__ -> createWebsite(title, description, url) __Domain__ and domain creates the objects and passes it to the **Database** level.

对象创建:

但是我应该在什么级别创建对象?

我看到两个选项:

1

__WebUI__[_creates the website_] -> saveWebsite(website) __Domain__ 

选项2:

__WebUI__ -> updateTitle(title) __Domain__
__WebUI__ -> updateDescription(desc) __Domain__
__WebUI__ -> updateUrl(url) __Domain__

和域将其传递到数据库级别。

第一个显然是最合理的。

对象更新:

如果我需要更新网站的信息怎么办?

选项1:

{{1}}

选项2:

WebUI 将对象的更新版本发送到域级别。


是否有特定的模式可供使用?

1 个答案:

答案 0 :(得分:0)

听起来像WebPage一般不是域名对象的好名字,可能你应该重新考虑是否要在用户输入的网络层数据与存储在网络层中的数据之间存在这种紧密耦合。数据库中。

大多数JEE或相关的前端框架(如Spring MVC或Wicket或JSF)接受/显示用脚本语言(如JSP)呈现的用户数据,并将它们绑定到由POJO表示的bean(有时带注释)。这些POJO可能不适合用作Hibernate映射对象,因为当用户可能处于耗时的活动时,您不希望附加到Hibernate会话的entites。因此,前端POJO通常与Hibernate会话分离,并且您的数据库映射层必须使用Hibernate与您的表进行映射。请参阅JBoss doc中的章节。 here