بخش های اصلی

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

Design Pattern - الگوی Composite Entity

الگوی Composite Entity در مکانیسم تداومِ EJB به کار میره. یک Composite Entity، یک EJB entity bean است که نموداری از اشیاء را ارائه میده. زمانی که composite entity به روزرسانی میشه، بصورت داخلی، اجزای اشیاء وابسته نیز به دلیل این که توسط EJB Entity bean مدیریت میشن، بصورت خودکار به روز رسانی میشن. در ادامه اجزای Composite Entity Bean را مشاهده می کنین.

  • Composite Entity – یک entity bean اولیه ست. می تواند یک coarse grained باشه یا این که یک شیءِ coarse grained را با هدف تداوم، شامل بشه.
  • شیءِ Coarse-Grained – این شی شامل اشیاء وابستَ ست. این شیء، چرخه ی حیاتِ خودش را داره و چرخه ی حیات اشیاء وابسته را نیز مدیریت می کنه.
  •  شیءِ وابسته – شیءِ وابسته، شیء ایِه که به شیءِ coarse grained جهت تداوم چرخه ی حیاتش، وابسته است.
  •  استراتژی ها – استراتژی ها، چگونگی پیاده سازیِ Composite Entity را نشان میدن.

پیاده سازی

در این بخش یک شیءِ CompositeEntity ایجاد می کنیم که بعنوانِ CompositeEntity عمل می کنه. CoarseGrainedObject، کلاسی خواهد بود که حاویِ اشیاءِ وابسته است.
CompositeEntityPatternDemo، در نسخه ی آموزشی کلاس مان از کلاسِ Client برای نمایش نحوه ی استفاده از الگوی Composite Entity استفاده خواهیم کرد.

compositeentity pattern uml diagram

مرحله ی 1

ایجاد اشیاء وابسته.

DependentObject1.java

public class DependentObject1 {
	
   private String data;

   public void setData(String data){
      this.data = data; 
   } 

   public String getData(){
      return data;
   }
}

DependentObject2.java

public class DependentObject2 {
	
   private String data;

   public void setData(String data){
      this.data = data; 
   } 

   public String getData(){
      return data;
   }
}

مرحله ی 2

ایجاد شیءِ Coarse Grained.

CoarseGrainedObject.java

public class CoarseGrainedObject {
   DependentObject1 do1 = new DependentObject1();
   DependentObject2 do2 = new DependentObject2();

   public void setData(String data1, String data2){
      do1.setData(data1);
      do2.setData(data2);
   }

   public String[] getData(){
      return new String[] {do1.getData(),do2.getData()};
   }
}

مرحله ی 3

ایجاد Composite Entity.

CompositeEntity.java

public class CompositeEntity {
   private CoarseGrainedObject cgo = new CoarseGrainedObject();

   public void setData(String data1, String data2){
      cgo.setData(data1, data2);
   }

   public String[] getData(){
      return cgo.getData();
   }
}

مرحله ی 4

ایجادِ کلاسِ Client با استفاده از Composite Entity.

Client.java

public class Client {
   private CompositeEntity compositeEntity = new CompositeEntity();

   public void printData(){
   
      for (int i = 0; i < compositeEntity.getData().length; i++) {
         System.out.println("Data: " + compositeEntity.getData()[i]);
      }
   }

   public void setData(String data1, String data2){
      compositeEntity.setData(data1, data2);
   }
}

مرحله ی 5

استفاده از Client برای نشان دادن طرز استفاده ی الگوی Composite Entity.

CompositeEntityPatternDemo.java

public class CompositeEntityPatternDemo {
   public static void main(String[] args) {
   
       Client client = new Client();
       client.setData("Test", "Data");
       client.printData();
       client.setData("Second Test", "Data1");
       client.printData();
   }
}

مرحله ی 6

بررسی خروجی

Data: Test
Data: Data
Data: Second Test
Data: Data1

مبحث آموزشی

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

Learn Design Patterns

سرفصل ها

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

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

تبلیغات

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

https://telegram.me/softskill_ir

آخرین مقالات

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

خبـرنــامه

Newsletters

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