Java設計模式
Java工廠設計模式
Java抽象工廠模式
Java單例模式
Java建造者(Builder)模式
Java原型模式
Java適配器模式
Java橋接模式
Java過濾器模式(條件模式)
Java組合模式
Java裝飾模式
Java門面模式(或外觀模式)
Java享元模式(Flyweight Pattern)
Java責任鏈模式
Java命令模式
Java迭代器模式
Java中介者模式(Mediator Pattern)
Java解釋器模式
Java備忘錄模式
Java觀察者模式
Java狀態模式
Java空對象模式
Java策略模式
Java模板模式
Java訪問者模式
Java MVC模式
Java業務代理模式
Java組合實體模式
Java數據訪問對象模式
Java前端控制器模式
Java攔截過濾器模式
Java服務定位器模式
Java傳輸對象模式
Java業務代理模式
業務代理模式用於解耦表示層和業務層。 它基本上用於減少表示層代碼中的業務層代碼的通信或遠程查找功能。在業務層有以下實體。
- 客戶端(Client) - 表示層代碼可以是JSP,servlet或UI java代碼。
- 業務代理 - 爲客戶端實體提供對業務服務方法的訪問的單個入口點類。
- 查找服務 - 查找服務對象負責獲得相關業務的實施和提供業務的委託對象業務對象的訪問。
- 業務服務 - 業務服務接口。 具體類實現這個業務服務以提供實際的業務實現邏輯。
實現實例
在這個實現實例中,將創建一個業務代理模式的各種實體的Client
,BusinessDelegate
,BusinessService
,LookUpService
,JMSService
和EJBService
。
BusinessDelegatePatternDemo
這是一個演示類,將使用 BusinessDelegate
和 Client
來演示業務代理模式的使用。
業務代理模式示例的結構如下圖所示 -
第1步
創建BusinessService
接口,其代碼如下所示 -
BusinessService.java
public interface BusinessService {
public void doProcessing();
}
第2步
創建具體的服務類,其代碼如下所示 -
EJBService.java
public class EJBService implements BusinessService {
@Override
public void doProcessing() {
System.out.println("Processing task by invoking EJB Service");
}
}
JMSService.java
public class JMSService implements BusinessService {
@Override
public void doProcessing() {
System.out.println("Processing task by invoking JMS Service");
}
}
第3步
創建業務查找服務,其代碼如下所示 -
BusinessLookUp.java
public class BusinessLookUp {
public BusinessService getBusinessService(String serviceType){
if(serviceType.equalsIgnoreCase("EJB")){
return new EJBService();
}
else {
return new JMSService();
}
}
}
第4步
創建業務代理,其代碼如下所示 -
BusinessDelegate.java
public class BusinessDelegate {
private BusinessLookUp lookupService = new BusinessLookUp();
private BusinessService businessService;
private String serviceType;
public void setServiceType(String serviceType){
this.serviceType = serviceType;
}
public void doTask(){
businessService = lookupService.getBusinessService(serviceType);
businessService.doProcessing();
}
}
第5步
創建客戶端,其代碼如下所示 -
Client.java
public class Client {
BusinessDelegate businessService;
public Client(BusinessDelegate businessService){
this.businessService = businessService;
}
public void doTask(){
businessService.doTask();
}
}
第6步
使用BusinessDelegate
和Client
類來演示業務代理模式,其代碼如下所示 -
BusinessDelegatePatternDemo.java
public class BusinessDelegatePatternDemo {
public static void main(String[] args) {
BusinessDelegate businessDelegate = new BusinessDelegate();
businessDelegate.setServiceType("EJB");
Client client = new Client(businessDelegate);
client.doTask();
businessDelegate.setServiceType("JMS");
client.doTask();
}
}
第7步
驗證輸出,執行上面的代碼得到以下結果 -
Processing task by invoking EJB Service
Processing task by invoking JMS Service