【发布时间】:2012-08-28 10:50:48
【问题描述】:
为应用程序通用的操作使用 commonBean 是否正确/最佳实践?在我的例子中,这将是一个清除会话 bean 记录值的注销函数。
我的一位同事告诉我,每个视图只能使用一个控制器 bean,但是在多个 bean 中复制相同的方法似乎是一种浪费。
【问题讨论】:
标签: java jsf managed-bean
为应用程序通用的操作使用 commonBean 是否正确/最佳实践?在我的例子中,这将是一个清除会话 bean 记录值的注销函数。
我的一位同事告诉我,每个视图只能使用一个控制器 bean,但是在多个 bean 中复制相同的方法似乎是一种浪费。
【问题讨论】:
标签: java jsf managed-bean
您的同事将 View 和 Controller 的分离称为纯 MVC 模式中定义松散的原则。 JSF 应用程序中的托管 Bean 非常适合作为控制器的角色,但是由于您已陈述的原因,这不应被视为硬性规定。
我引用企业应用架构模式中的 Martin Fowler 的话:
正如我所说,MVC 的价值在于它的两个分离。其中有 表示和模型的分离是最重要的之一 软件中的设计原则,你不应该遵循的唯一时间 在非常简单的系统中,模型没有实际行为 无论如何。一旦你得到一些非视觉逻辑,你应该应用 分离。不幸的是,很多 UI 框架都做到了 困难,而那些不经常在没有分离的情况下教授。
视图和控制器的分离不太重要,所以我只 建议在真正有用时这样做。对于富客户端 系统,最终几乎没有,尽管它在 Web 中很常见 控制器分离的前端。大部分的 这里的网页设计模式就是基于这个原则。
基本上,Fowler 指出,将视图绑定到控制器不如将模型绑定到视图重要,因此如果有帮助的话,跨视图使用控制器或每个视图使用多个控制器当然是可以接受的。
【讨论】: