2013-05-05 55 views

回答

2

都试图以独立组件的复杂性,但:

  • 视图助手的目的是使视图更亮(使他们只显示的东西,真的);
  • 业务委托打算去耦任何两个组件(离开水暖工作的细节,第三个,将在他们之间)。

我可以看到你的困惑来自哪里,因为它们看上去很像。但是,在实践中,他们针对两个不同的问题:

视图助手

随着系统增长,人们往往开始把代码的查看,说JSP,它开始变得越来越复杂。视图不应该有很多代码。他们应该只显示数据。例如,如果您在JSP中进行繁重的计算,那么一方面代码将隐藏在HTML标记中,另一方面,您无法在系统中的任何位置重新使用代码。想象一下,必须在这样的代码中进行一些维护。你会发疯。

视图助手教你通过使浏览简单通过创建一个Helper类为它做繁重的工作,使JSP调用,而不是保持所有的复杂的代码内部的方式,你能够避免的JSP。

业务委托

当你有一个组件,说MyCalculator,调用改变了很多外部组件(比如一个EJB WeatherEJB),你最终不得不改变你的组件也很多。

例如,认为MyCalculator是您系统中非常重要的一类,您不会一直想改变它。如果你破坏别的东西呢?如果有人也在另一个分支改变它呢?

此外,您只希望更改MyCalculator您的业务变化,而不是每次其他人的变化。

当看到MyCalculator这样的电话像ten其他组件时,您会看到这个变得更疯狂。你会每天改变它!

业务委托就派上用场了建议:加个班WeatherDelegate可以执行调用WeatherEJB,使MyCalculator使用它,而不是直接调用WeatherEJB的。

这样,每当WeatherEJB发生变化时,您都不需要更改MyCalculator。您只需编辑WeatherDelegate即可。(另外,如果有一天你想改变你的天气一的方式,比如说,Web服务,再次,你不得不修改是WeatherDelegate

到底...

......他们都说:创造一个人为你做一些工作。但查看帮手说,所以你不要做视图上的不必要的工作;和业务代表告诉你去耦合一些组件,这样你的系统职责就更好地分配了。两者都使系统更易于维护。

相关问题