[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

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 2

viết lại nội dung này ” Phát hiện các cuộc tấn công Cross Site Scripting (XSS)

AI Chatbot 2025: Xu Hướng Tất Yếu Cho Doanh Nghiệp Dẫn Đầu

Giới thiệu AI chatbots đã trải qua một hành trình đáng kể, từ những công cụ t

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 1

Tấn công web là gì? Ứng dụng web là các ứng dụng cung cấp dịch vụ cho người

SEO Mũ Trắng, Mũ Đen, Mũ Xám: Hiểu Biết và Lựa Chọn Phù Hợp

SEO Mũ Trắng, Mũ Đen, Mũ Xám: Hiểu Biết và Lựa Chọn Phù Hợp Trong kỷ nguyên s