Шаблон составного объекта используется в механизме персистентности EJB. Составная сущность — это EJB-сущностный бин, представляющий граф объектов. Когда составной объект обновляется, внутренне-зависимые объекты-объекты автоматически обновляются как управляемые компонентом EJB-компонента. Ниже приведены участники в компонентном компоненте.
-
Composite Entity — это компонент первичной сущности. Это может быть крупнозернистый или может содержать крупнозернистый объект для использования в постоянных целях.
-
Крупнозернистый объект — этот объект содержит зависимые объекты. Он имеет свой жизненный цикл, а также управляет жизненным циклом зависимых объектов.
-
Зависимый объект — Зависимый объект — это объект, который зависит от крупнозернистого объекта в течение его жизненного цикла.
-
Стратегии — Стратегия представляет, как реализовать составную сущность.
Composite Entity — это компонент первичной сущности. Это может быть крупнозернистый или может содержать крупнозернистый объект для использования в постоянных целях.
Крупнозернистый объект — этот объект содержит зависимые объекты. Он имеет свой жизненный цикл, а также управляет жизненным циклом зависимых объектов.
Зависимый объект — Зависимый объект — это объект, который зависит от крупнозернистого объекта в течение его жизненного цикла.
Стратегии — Стратегия представляет, как реализовать составную сущность.
Реализация
Мы собираемся создать объект CompositeEntity, действующий как CompositeEntity. CoarseGrainedObject будет классом, который содержит зависимые объекты. CompositeEntityPatternDemo , наш демонстрационный класс будет использовать класс Client, чтобы продемонстрировать использование шаблона Composite Entity.
Шаг 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
Создать крупнозернистый объект.
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
Создать составную сущность.
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
Используйте клиент для демонстрации использования шаблона проектирования 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
Проверьте вывод.