بخش های اصلی

آموزش الگوهای طراحی

Design Pattern - الگوی Business Delegate

الگوی Business Delegate برای جداسازی لایه ی نمایش (presentation) و لایه ی کاری (business) به کار میره. این الگو اساساً در کد لایه ی نماش (presentation)، برای کاهش ارتباطات یا قابلیت مراجعه از راه دور با کدِ لایه ی کاری (business)، به کار میره.

  • کلاینت (Client)– کد لایه ی نمایش (Presentation) ممکنه JSP، servelt یا کد رابط کاربری جاوا باشه.
  • Business Delegate– یک کلاس اشاره گر ورودیِ واحد برای موجودیت های کلاینتِه که دسترسی به متدهای Business Service را امکان پذیر می کنه.
  • LookUp Service– شیءِ LookUp Service مسئول دریافت نسبیِ پیاده سازیِ business است و شیء business دسترسی به شیءِ business delegate را امکان پذیر می کنه.
  • Business Service– رابطِ Business Service. کلاس های concrete، این business service را برای فراهم کردن منطق پیاده سازیِ business واقعی، پیاده سازی می کنن.

پیاده سازی

در این بخش یک Client، BusinessDelegate، BusinessService،LookUpService، JMSService و EJBService ایجاد می کنیم که موجودیت های مختلف الگویِ Business Delegate را ارائه میدن.

BusinessDelegatePatternDemo، در نسخه ی آزمایشیِ کلاس مان، از BusinessDelegate و Client برای نشان دادن کاربرد الگوی Business Delegate استفاده خواهیم کرد.

business delegate pattern uml diagram

مرحله ی 1

ایجاد رابطِ BusinessService.

BusinessService.java

public interface BusinessService {
   public void doProcessing();
}

مرحله ی 2

ایجاد کلاس های concrete Service.

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

ایجاد Business Lookup Service.

BusinessLookUp.java

public class BusinessLookUp {
   public BusinessService getBusinessService(String serviceType){
   
      if(serviceType.equalsIgnoreCase("EJB")){
         return new EJBService();
      }
      else {
         return new JMSService();
      }
   }
}

مرحله ی 4

ایجادِ Business Delegate.

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.

Client.java

public class Client {
	
   BusinessDelegate businessService;

   public Client(BusinessDelegate businessService){
      this.businessService  = businessService;
   }

   public void doTask(){		
      businessService.doTask();
   }
}

مرحله ی 6

استفاده از کلاس های BusinessDelegate و Client برای نشان دادن الگوی 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();
   }
}

مرحله ی 7

بررسی خروجی

Processing task by invoking EJB Service
Processing task by invoking JMS Service

مبحث آموزشی

آموزش الگوهای طراحی

Learn Design Patterns

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

تبلیغات

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد