[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

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ