[Design Patterns] Composite Entity

Composite Entity (thực thể tổng hợp) được sử dụng trong cơ chế đồng bộ của EJB. Một object Composite Entity là một EJB bean biểu thị một biểu đồ các object. Khi một object tổng hợp được cập nhật thì các object lệ thuộc vào object này cũng sẽ được tự động cập nhật. Dưới

Composite Entity (thực thể tổng hợp) được sử dụng trong cơ chế đồng bộ của EJB.
Một object Composite Entity là một EJB bean biểu thị một biểu đồ các object. Khi
một object tổng hợp được cập nhật thì các object lệ thuộc vào object này cũng sẽ
được tự động cập nhật. Dưới đây là các thành phần trong Composite Entity Bean.

  • Composite Entity – Là thực thể chính của bean. Có thể là một object thô Coarse-Grained Object hoặc chứa một Coarse-Grained Object.
  • Coarse-Grained Object – Chứa các object lệ thuộc Dependent Object.
  • Dependent Object – Lệ thuộc vào Coarse-Grained Object trong thời gian tồn tại.

Áp dụng triển khai

Bước 1

Tạo class cho các object lệ thuộc.

compositeentity/dependency/Heaven.java

packagecompositeentity.dependency;importjava.util.List;publicclassHeaven{privateString name;privateString data;publicHeaven(){
      name ="Heaven";}publicvoidsetData(String data){this.data = data;}publicStringgetData(){return data;}}

compositeentity/dependency/Earth.java

packagecompositeentity.dependency;publicclassEarth{privateString name;privateString data;publicEarth(){
      name ="Earth";}publicvoidsetData(String data){this.data = data;}publicStringgetData(){return data;}}

Bước 2

Tạo object tổng hợp.

compositeentity/Entity.java

packagecompositeentity;importcompositeentity.dependency.Earth;importcompositeentity.dependency.Heaven;importjava.util.*;publicclassEntity{privateHeaven dependency1;privateEarth dependency2;publicEntity(){
      dependency1 =newHeaven();
      dependency2 =newEarth();}publicvoidsetData(String messageToHeaven,String messageToEarth
   ){
      dependency1.setData(messageToHeaven);
      dependency2.setData(messageToEarth);}publicList<String>getData(){List<String> data =newArrayList<String>();
      data.add(dependency1.getData());
      data.add(dependency2.getData());return data;}}

Bước 3

Tạo class mô tả Client sử dụng Entity.

Client.java

importcompositeentity.Entity;publicclassClient{privateEntity entity;publicClient(){
      entity =newEntity();}publicvoiddisplayData(){
      entity.getData().forEach((message)->System.out.println(message));}publicvoidupdateData(String messageToHeaven,String messageToEarth
   ){
      entity.setData(messageToHeaven, messageToEarth);}}

Bước 4

Sử dụng Client để chạy thử.

PatternDemo.java

publicclassPatternDemo{publicstaticvoidmain(String[] args){Client client =newClient();

      client.updateData("To heaven","To earth");
      client.displayData();

      client.updateData("Mind","Body");
      client.displayData();}}

Bước 5

Kiểm chứng lại kết quả được in ra ở console.

console

To heaven
To earth
MindBody

Nguồn: viblo.asia

Bài viết liên quan

9 Mẹo lập trình Web “ẩn mình” giúp tiết kiệm hàng giờ đồng hồ

Hầu hết các lập trình viên (kể cả những người giỏi) đều tốn thời gian x

Can GPT-4o Generate Images? All You Need to Know about GPT-4o-image

OpenAI‘s GPT-4o, introduced on March 25, 2025, has revolutionized the way we create visual con

Khi nào nên dùng main, section, article, header, footer, và aside trong HTML5

HTML5 đã giới thiệu các thẻ ngữ nghĩa giúp cấu trúc nội dung web một cách có

So sánh Webhook và API: Khi nào nên sử dụng?

Trong lĩnh vực công nghệ thông tin và phát triển phần mềm, Webhook và API là hai th