2015-10-15 95 views

回答

1

門面的目的是提供一個面向前端(或客戶端)的端點,這反過來只提供通信所需的東西,並隱藏任何背後的東西到外部世界。

擁有一個外觀可以讓你在不暴露它的情況下抽象你的行爲。它還將允許您進行更改,而不會影響端點本身。這顯然取決於改變的類型,但是如果你有一些要求邏輯上需要改變的要求,服務的實際輸入和輸出可能保持不變。

如果您在何處取消服務門面,對代碼的任何更改都可能需要您的客戶端從其端點更新代碼,而那些出於某種原因不更新的客戶端可能會因爲系統損壞或否則你將不得不迎合多個版本。

1

服務門面設計模式並非強制使用Web服務。當您不希望公開核心服務合同變更時需要。

它是如何工作

  1. 您將定義一個核心業務服務合同(CoreServiceContract)

  2. 您將定義執行該合同(CoreServiceContractImpl)

  3. 您將定義一個服務面向客戶的門面(ServiceFacade) 此ServiceFacade持有合同的參考 - CoreServiceContract

  4. 您將通過ServiceFacade調用在CoreServiceContract中定義的方法。 CoreServiceContract持有落實CoreServiceContractImpl

優點:

1)服務門面隔離與它的實現服務定義。

2)這是將Web層與業務層分離的方式。

3)從交易的角度來看,業務服務可以實現其交易範圍或成爲當前交易的一部分。

4)服務門面接口的合同面向將由Web層或客戶端軟件調用,但合同的方法不應在業務實現中調用 。

看一看這篇文章的工作code