2012-08-22 58 views
3

在J2EE模式會話外觀 - 即「核心J2EE模式 - 最佳實踐和設計策略」一書中說:會話外觀在客戶機 - 服務器應用程序

使用會話facade來封裝業務層組件並將粗粒度服務公開給遠程客戶端。客戶端訪問會話外觀而不是直接訪問業務組件。

我想知道它對遠程客戶端意味着什麼嗎?因爲我創建了一個客戶端服務器應用程序,其中客戶端是一個Android應用程序,服務器是一個Java服務器。 是會話外觀我需要暴露給客戶端(Android應用程序)他們之間的溝通所必需的API兩個?

謝謝。

+0

此問題屬於代碼體系結構論壇,因爲它將成爲討論 – Brad

回答

3

Diagram

遠程客戶端可以是任何東西 - Web瀏覽器,Android應用程序或其他Web服務或應用程序。

現在,當你提供一個門面。它會向您公開您的Android應用程序(遠程客戶端)將用於訪問服務器端的界面。通過這種方式,您的android應用程序不必擔心業務邏輯和數據處理的實現細節。

您訪問和處理數據的邏輯可能隨時間而改變,但只要您的Facade界面相同,您的客戶端就不用擔心任何事情,這是Facade的優勢。此外,如果明天如果您想在Windows或iPhone中開發應用程序,則可以使用相同的Facade界面訪問您的系統,而無需編寫一行新代碼。

+0

感謝您的回答。現在我想知道(我在這裏問過http://stackoverflow.com/questions/12131883/how-to-implement-session-facade-or-others-patterns-without-ejb/12131908#12131908)如果我可以在不使用ejb的情況下實現會話外觀。 再次感謝! ;) – LS05

+0

要實現Facade模式,它不是強制使用EJB。這就是這種模式的美妙之處。你可以使用任何你想要的方法來實現它。但是使用EJB或不使用EJB將取決於您希望如何實現所有業務層。 – Atul

+0

非常感謝@Atul,我專注於特定於EJB的書;) – LS05

0

Facade應該爲服務器客戶端通信(會話)提供簡化的接口。所以這個服務(外觀)應該聚合所有這種交流的重要方法。

你可以看看設計模型facade閱讀更多。

+0

那麼我的具體應用模式是否正確? – LS05

+0

我可能不得不看到實現,但是你的總體思路是正確的。 – Eduard

+0

我還沒有實現,但我有UML組件圖: http://i47.tinypic.com/288bc0m.jpg是一個分層架構。 第一個是表示層,中間是業務層,最後是集成層 對於組件: AC留在APPLICATION CONTROLLER,AS留在APPLICATION SERVICE。 您可以在右側看到會話外觀。 – LS05

相關問題