0
A
回答
4
你指的是一個Remote
界面像Java的RMI?我不認爲這是facade
,但實際上是proxy
模式實施。
遠程將所有調用(通過代理模式從用戶隱藏)轉發到其他機器。這從用戶隱藏了工作不在本地完成的事實。
Facade
模式通常會將複雜的界面簡化爲更簡化的版本(例如使用不同的控制面板替換複雜的控制面板,僅使用少數最常用的按鈕)。如果你真的需要更復雜的版本,你仍然可以使用舊的更復雜的控制。
編輯 你指出,你指的是馬林福勒的Remote Facade
後,我會進一步解釋:
福勒的Remote Facade
不僅僅是Remote
+ Facade
模式。幕牆使用的簡化背後還有一個額外的推理。
而不僅僅是簡化複雜的方法或從正面刪除使用的方法。 RemoteFacade
明確用於組合「unfacaded」接口中的幾種常用方法,以減少延遲和網絡流量。
由於Remote
調用將通過網絡(使用Java的RMI等),因此將方法調用轉換爲消息以通過網絡傳輸會有很多開銷。消息需要時間才能通過網絡並獲取消息並解組響應等。還可能有安全層檢查和攔截流量。所有這些增加了調用遠程方法的時間和精力。
RemoteFacade
將幾種常用方法組合成單個網絡消息。因此,使用Fowler的書中的例子,如果您有一個Address的接口,並帶有setCity()setZipcode(),setStreet()的單獨setter。這將是3個遠程電話通過網絡。相反,RemoteFacade
將此轉換爲1個方法setAddress(street,city,zip),它只需要傳遞1個聯網消息,因此調用時間應該較短。
相關問題
- 1. 「Facade」設計模式與架構的「Facade」
- 2. 何時何地在java中使用facade和委託模式?
- 3. Facade設計模式的缺點是什麼?
- 4. 爲什麼在EJB中使用facade模式?
- 5. ORM包是否實現了Facade或Adapter模式?
- 6. Facade和Gateway設計模式有什麼區別?
- 7. Facade模式的最佳實踐是什麼?
- 8. 爲什麼使用Facade模式的EJB會話bean
- 9. 「Facade」術語問題
- 10. 使用Adapter/Facade模式來預測不兼容的接口和複雜性?
- 11. 測試Facade多功能
- 12. 在Facade實現中的ConcurrentModificationException
- 13. 如何拆分SFSB Facade?
- 14. 所有Facade都是API?
- 15. Laravel ServiceContainer和Facade(初學者)
- 16. 模式 - Matcher.group()VS Matcher.pattern()模式()
- 17. Laravel4如何使用Facade作爲模型觀察者?
- 18. 如何在Lumen Blade模板中獲取URL Facade?
- 19. Bootstrap3遠程模式與JavaScript在遠程?
- 20. ReportViewer - 遠程模式問題
- 21. DeLeaker在遠程模式?
- 22. Bootstrap模式遠程與ZeroClipboard
- 23. CodeMirror:TextMarker VS模式
- 24. 動態模式vs靈活模式vs動態映射vs無模式
- 25. 從遠程模式清理形式
- 26. 在rails應用程序中實現java facade/service概念的最佳方式
- 27. PHP Laravel Facade __callStatic參數列表
- 28. Laravel Session Facade的意外行爲
- 29. ServiceLayer Facade的外觀應該如何?
- 30. 嘲諷ConfigurationManager.Appsettings而不使用Facade方法
我指的是Fowlers的模式:http://martinfowler.com/eaaCatalog/remoteFacade.html,我不認爲這是與Java的RMI – bckpwrld
@bckpwrld相同的更新響應。 – dkatzel