JSF注销页面 - 最佳实践:使用一个常见的bean是否正确?

Ast*_*aut 1 java jsf managed-bean

对应用程序通用的操作使用commonBean是否正确/最佳实践?在我的例子中,这将是一个注销函数,它清除会话bean的记录值.

我的一个同事告诉我,只有一个控制器bean应当按次使用,但它似乎是一个浪费,在多个豆复制了同样的方法.

map*_*aft 5

您的同事将视图和控制器的分离称为纯MVC模式中的松散定义原则.JSF应用程序中的Managed Bean非常适合Controller的角色,但是由于您所声明的原因,这不应被视为硬性规定.

我引用了企业应用程序架构模式中的Martin Fowler:

正如我所说,MVC的价值在于它的两个分离.其中,表示和模型的分离是软件中最重要的设计原则之一,并且你不应该遵循它的唯一时间是在非常简单的系统中,模型中无论如何都没有真正的行为.一旦你得到一些非视觉逻辑,你应该应用分离.不幸的是,许多UI框架使得它变得困难,而那些没有的框架通常会在没有分离的情况下进行教学.

视图和控制器的分离并不重要,所以我建议在它真正有用的时候进行.对于富客户端系统而言,这种情况最终几乎没有,尽管在控制器被分离出来的Web前端很常见.这里的Web设计大多数模式都基于该原理.

基本上Fowler声称绑定视图到控制器并不像绑定模型那样重要,因此如果有用的话,在视图中使用控制器或每个视图使用多个控制器肯定是可以接受的.