Business Delegate không nằm trong danh sách các pattern do các tác giả GoF thiết kế.
Besiness Delegate được sử dụng khi chúng ta muốn tách rời tầng biểu thị dữ liệu
presentation và tầng logic quản lý business. Pattern này thường được sử dụng để
giảm thiểu giao tiếp trong code của tầng presentation tới tầng business.
Trong Business Delegate, chúng ta có các thực thể sau:
- Client– Đại diện cho tầng- presentation. Có thể là JSP, servlet, hoặc code UI.
- Business Delegate– Đại diện cho tầngbusinessđể các thực thểClient
 có thể truy xuất tới các chức năng quản lý BusinessService.
- Business Service– Một interface chung cho các class triển khai các chức năng quản lý.
- Business LookUp– Object hỗ trợ BusinessDelegatetìm kiếm chức năng phù hợp.
Áp dụng triển khai

Bước 1
Tạo giao diện Business Service cho các class triển khai chức năng quản lý.
businessdelegate/service/Service.java
packagebusinessdelegate.service;publicinterfaceService{publicvoidprocess();}Bước 2
Tạo các class triển khai Service là EJB và JMS.
businessdelegate/service/EJB.java
packagebusinessdelegate.service;class EJB
implementsService{@Overridepublicvoidprocess(){System.out.println("EJB Service processing...");}}businessdelegate/service/JMS.java
packagebusinessdelegate.service;class JMS
implementsService{@Overridepublicvoidprocess(){System.out.println("JMS Service processing...");}}Bước 3
Tạo class hỗ trợ tìm kiếm chức năng Business LookUp.
businessdelegate/service/LookUp.java
packagebusinessdelegate.service;publicclassLookUp{publicServicegetService(String serviceType){if("EJB".equalsIgnoreCase(serviceType))returnnewEJB();if("JMS".equalsIgnoreCase(serviceType))returnnewJMS();elsereturnnull;}}Bước 4
Tạo class đại diện Business Delegate.
businessdelegate/Delegate.java
packagebusinessdelegate;importbusinessdelegate.service.LookUp;importbusinessdelegate.service.Service;publicclassDelegate{privateService service;publicvoidsetType(String serviceType){LookUp lookup =newLookUp();
      service = lookup.getService(serviceType);}publicvoidprocess(){
      service.process();}}Bước 5
Tạo class Client.
Client.java
importbusinessdelegate.Delegate;publicclassClient{privateDelegate businessDelegate;publicClient(Delegate businessDelegate){this.businessDelegate = businessDelegate;}publicvoiddoTask(){
      businessDelegate.process();}}Bước 6
Sử dụng Business Delegate và Client để thử hoạt động của pattern.
PatternDemo.java
importbusinessdelegate.Delegate;publicclassPatternDemo{publicstaticvoidmain(String[] args){Delegate businessDelegate =newDelegate();Client client =newClient(businessDelegate);
      businessDelegate.setType("EJB");
      client.doTask();
      businessDelegate.setType("JMS");
      client.doTask();}}Bước 7
Kiểm chứng lại kết quả được in ra ở console.
console
EJB Service processing...
JMS Service processing...Nguồn: viblo.asia
