在MVP设计模式中,谁负责访问数据库

时间:2014-09-25 17:45:43

标签: java design-patterns mvp

我有一个与MVP设计模式有关的问题。

我有一个视图,将所有事件传递给演示者。演示者具有业务逻辑并更新视图。该模型只是JPA entities 的集合。

问题是,谁负责访问数据库并检索模型?

我的第一个想法是,这是主持人的责任。但是,想象在几个页面中需要相同的业务逻辑,例如,验证用户是否有权访问某些内容。在这种情况下,业务逻辑将出现在几个演示者类中,这是不好的。

什么是最佳实施?

1 个答案:

答案 0 :(得分:0)

听起来您对MVPMVC之间的差异感兴趣。请注意,MVP是经典MVC架构的较新变体,关键区别在于谁访问模型(请参阅维基百科文章中的不同图表)。

在经典MVC模式中,View和Controller都访问模型,而只有Presenter可以访问MVP。另请注意,在MVP中,并非所有业务逻辑都必须位于Presenter中。从维基百科,“视图中允许的逻辑程度因不同的实现而异......视图......可能是处理特定交互或命令的最佳位置。

第二个问题的答案当然是“这取决于你正在实施什么。”如果您认为MVP将导致特定应用程序的Presenter中存在重复逻辑,请考虑将某些逻辑移至View,或考虑切换到MVC模式。