2014-09-25 81 views
2

我有一个与MVP设计模式有关的问题。在MVP设计模式中,谁负责访问数据库

我有一个传递给主持人的所有事件视图。演示者拥有商务逻辑并更新视图。该模型只是JPA entities的集合。

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

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

什么是最好的实现?

回答

0

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

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

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