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