他們似乎做同樣的事情 - 獨立的業務層複雜的表示層邏輯。那麼區別是什麼呢?業務代表和視圖助手之間的區別
回答
都試圖以獨立組件的複雜性,但:
- 視圖助手的目的是使視圖更亮(使他們只顯示的東西,真的);
- 業務委託打算去耦任何兩個組件(離開水暖工作的細節,第三個,將在他們之間)。
我可以看到你的困惑來自哪裏,因爲它們看上去很像。但是,在實踐中,他們針對兩個不同的問題:
視圖助手
隨着系統增長,人們往往開始把代碼的查看,說JSP,它開始變得越來越複雜。視圖不應該有很多代碼。他們應該只顯示數據。例如,如果您在JSP中進行繁重的計算,那麼一方面代碼將隱藏在HTML標記中,另一方面,您無法在系統中的任何位置重新使用代碼。想象一下,必須在這樣的代碼中進行一些維護。你會發瘋。
視圖助手教你通過使瀏覽簡單通過創建一個Helper
類爲它做繁重的工作,使JSP調用,而不是保持所有的複雜的代碼內部的方式,你能夠避免的JSP。
業務委託
當你有一個組件,說MyCalculator
,調用改變了很多外部組件(比如一個EJB WeatherEJB
),你最終不得不改變你的組件也很多。
例如,認爲MyCalculator
是您系統中非常重要的一類,您不會一直想改變它。如果你破壞別的東西呢?如果有人也在另一個分支改變它呢?
此外,您只希望更改MyCalculator
當您的業務變化,而不是每次其他人的變化。
當看到MyCalculator
這樣的電話像ten其他組件時,您會看到這個變得更瘋狂。你會每天改變它!
業務委託就派上用場了建議:加個班WeatherDelegate
可以執行調用WeatherEJB
,使MyCalculator
使用它,而不是直接調用WeatherEJB
的。
這樣,每當WeatherEJB
發生變化時,您都不需要更改MyCalculator
。您只需編輯WeatherDelegate
即可。(另外,如果有一天你想改變你的天氣一的方式,比如說,Web服務,再次,你不得不修改是WeatherDelegate
)
到底...
......他們都說:創造一個人爲你做一些工作。但查看幫手說,所以你不要做視圖上的不必要的工作;和業務代表告訴你去耦合一些組件,這樣你的系統職責就更好地分配了。兩者都使系統更易於維護。
- 1. 立面和業務代表模式之間的區別
- 2. Handlebars助手和Ember Handlebars助手之間有什麼區別?
- 3. Eclipse:「任務」視圖和「任務列表」視圖之間的區別
- 4. 視圖和tableViewControllers之間的UIBarButton區別?
- 5. php和框架中的庫和助手之間的區別
- 6. 協議和代表之間的區別?
- 7. Web服務和企業服務總線之間的區別
- 8. rails中的助手文件和lib文件之間的區別
- 9. .Net - 會話外觀和業務代表之間有什麼區別?
- 10. 在rails 4.0中sass-rails助手「image_url」和「asset_url」之間的區別?
- 11. 實用工具類和助手類之間的區別
- 12. 路徑助手和[action,controller]之間的區別button_to
- 13. 手錶端點之間的區別?
- 14. 活動和助手之間有什麼區別?
- 15. 子視圖和容器視圖之間的IOS區別
- 16. 視圖和子視圖之間的區別 - Android
- 17. Quartz作業和Spring安排任務之間的區別?
- 18. 方法迭代器和視圖之間有什麼區別?
- 19. 表索引和視圖索引之間的區別是什麼?
- 20. WPF中列表視圖和DataGrid之間的區別?
- 21. 視圖體積/視錐體和視口之間的區別?
- 22. 監視器和鎖之間的區別?
- 23. 應用層和業務邏輯層之間有什麼區別?
- 24. 圖層和圖案之間的區別
- 25. MNC代表之間的區別?
- 26. Hangfire後臺作業和重複作業之間的區別?
- 27. http_proxy,https_proxy和代理之間的區別?
- 28. $ HOME和'〜'(代字號)之間的區別?
- 29. JMS和Web服務之間的區別
- 30. BO和服務之間的區別?