Mẫu thiết kế - Mẫu đại diện kinh doanh
Mẫu Đại biểu Doanh nghiệp được sử dụng để phân tách cấp trình bày và cấp kinh doanh. Về cơ bản, nó được sử dụng để giảm chức năng giao tiếp hoặc tra cứu từ xa đối với mã cấp nghiệp vụ trong mã cấp trình bày. Trong cấp kinh doanh, chúng tôi có các thực thể sau.
Client - Mã bậc trình bày có thể là mã JSP, servlet hoặc UI java.
Business Delegate - Một lớp điểm vào duy nhất cho các thực thể khách hàng để cung cấp quyền truy cập vào các phương thức Dịch vụ Doanh nghiệp.
LookUp Service - Đối tượng dịch vụ tra cứu có trách nhiệm thực hiện nghiệp vụ tương đối và cung cấp quyền truy cập đối tượng nghiệp vụ vào đối tượng ủy nhiệm nghiệp vụ.
Business Service- Giao diện Business Service. Các lớp bê tông thực hiện dịch vụ nghiệp vụ này để cung cấp logic triển khai nghiệp vụ thực tế.
Thực hiện
Chúng tôi sẽ tạo một Client , BusinessDelegate , BusinessService , LookUpService , JMSService và EJBService đại diện cho các thực thể khác nhau của các mẫu Business Delegate.
BusinessDelegatePatternDemo , lớp demo của chúng tôi, sẽ sử dụng BusinessDelegate và Client để chứng minh việc sử dụng mẫu Business Delegate.
Bước 1
Tạo giao diện BusinessService.
BusinessService.java
public interface BusinessService {
public void doProcessing();
}
Bước 2
Tạo các lớp Dịch vụ cụ thể.
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");
}
}
Bước 3
Tạo Dịch vụ Tra cứu Doanh nghiệp.
BusinessLookUp.java
public class BusinessLookUp {
public BusinessService getBusinessService(String serviceType){
if(serviceType.equalsIgnoreCase("EJB")){
return new EJBService();
}
else {
return new JMSService();
}
}
}
Bước 4
Tạo Đại biểu Doanh nghiệp.
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();
}
}
Bước 5
Tạo khách hàng.
Client.java
public class Client {
BusinessDelegate businessService;
public Client(BusinessDelegate businessService){
this.businessService = businessService;
}
public void doTask(){
businessService.doTask();
}
}
Bước 6
Sử dụng các lớp BusinessDelegate và Client để thể hiện mẫu Business Delegate.
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();
}
}
Bước 7
Xác minh kết quả đầu ra.
Processing task by invoking EJB Service
Processing task by invoking JMS Service