2013-05-05 45 views

回答

2

都試圖以獨立組件的複雜性,但:

  • 視圖助手的目的是使視圖更亮(使他們只顯示的東西,真的);
  • 業務委託打算去耦任何兩個組件(離開水暖工作的細節,第三個,將在他們之間)。

我可以看到你的困惑來自哪裏,因爲它們看上去很像。但是,在實踐中,他們針對兩個不同的問題:

視圖助手

隨着系統增長,人們往往開始把代碼的查看,說JSP,它開始變得越來越複雜。視圖不應該有很多代碼。他們應該只顯示數據。例如,如果您在JSP中進行繁重的計算,那麼一方面代碼將隱藏在HTML標記中,另一方面,您無法在系統中的任何位置重新使用代碼。想象一下,必須在這樣的代碼中進行一些維護。你會發瘋。

視圖助手教你通過使瀏覽簡單通過創建一個Helper類爲它做繁重的工作,使JSP調用,而不是保持所有的複雜的代碼內部的方式,你能夠避免的JSP。

業務委託

當你有一個組件,說MyCalculator,調用改變了很多外部組件(比如一個EJB WeatherEJB),你最終不得不改變你的組件也很多。

例如,認爲MyCalculator是您系統中非常重要的一類,您不會一直想改變它。如果你破壞別的東西呢?如果有人也在另一個分支改變它呢?

此外,您只希望更改MyCalculator您的業務變化,而不是每次其他人的變化。

當看到MyCalculator這樣的電話像ten其他組件時,您會看到這個變得更瘋狂。你會每天改變它!

業務委託就派上用場了建議:加個班WeatherDelegate可以執行調用WeatherEJB,使MyCalculator使用它,而不是直接調用WeatherEJB的。

這樣,每當WeatherEJB發生變化時,您都不需要更改MyCalculator。您只需編輯WeatherDelegate即可。(另外,如果有一天你想改變你的天氣一的方式,比如說,Web服務,再次,你不得不修改是WeatherDelegate

到底...

......他們都說:創造一個人爲你做一些工作。但查看幫手說,所以你不要做視圖上的不必要的工作;和業務代表告訴你去耦合一些組件,這樣你的系統職責就更好地分配了。兩者都使系統更易於維護。

相關問題