组合实体模式

组合实体模式(Composite Entity Pattern)用在 EJB 持久化机制中。一个组合实体是一个 EJB 实体 bean,代表了对象的图解。当更新一个组合实体时,内部依赖对象 beans 会自动更新,因为它们是由 EJB 实体 bean 管理的。以下是组合实体 bean 的参与者。 组合实体(Composite Entity) - 它是主要的实体 bean。它可以是粗粒的,或者可以包含一个粗粒度对象,用于持续生命周期。

粗粒度对象(Coarse-Grained Object) - 该对象包含以来对象。它有自己的生命周期,也能管理依赖对象的生命周期。

依赖对象(Dependent Object) - 依赖对象是一个持续生命周期依赖于粗粒度对象的对象。

策略(Strategies) - 策略表示如何实现组合实体。

实现

我们将创建作为组合实体的 CompositeEntity 对象。CoarseGrainedObject 是一个包含依赖对象的类。

CompositeEntityPatternDemo,我们的演示类使用 Client 类来演示组合实体模式的用法。

步骤 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.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

使用 Client 来演示组合实体设计模式的用法。

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

验证输出。 Data: Test

Data: Data

Data: Second Test

Data: Data1

java教程菜鸟教程组合模式,组合实体模式相关推荐

  1. python菜鸟教程字典-python教程菜鸟教程学习路线

    python教程菜鸟教程学习路线,需要学Python 环境搭建.Python 中文编码.Python 基础语法.Python 变量类型.Python 运算符.Python 条件语句.Python 循环 ...

  2. python教程菜鸟教程学习路线

    python教程菜鸟教程学习路线,需要学Python 环境搭建.Python 中文编码.Python 基础语法.Python 变量类型.Python 运算符.Python 条件语句.Python 循环 ...

  3. Python基础教程-菜鸟教程学习笔记1

    Python基础教程-菜鸟教程学习笔记1 文章目录 Python基础教程-菜鸟教程学习笔记1 前言 Python 简介 1. 第一个Python程序 2. Python 中文编码 3. 基本语法 1) ...

  4. java script 菜鸟教程_JS 基础知识之菜鸟教程(2016-09-30)

    //2016-09-30 重读菜鸟教程上JS教程同时摘录重要知识点 1.JavaScript 输出几种方式: 使用 window.alert() 弹出警告框. 使用 document.write() ...

  5. MySQL 教程---菜鸟教程

    文章目录 MySQL 教程 登录 MySQL 数据库操作 数据类型 创建数据表 删除数据表 插入数据 查询数据 WHERE 子句 UPDATE 更新 DELETE 子句 LIKE 子句 UNION 操 ...

  6. python基础菜鸟教程-菜鸟教程学习python

    1.杂货 *items(): 方法以列表返回可遍历的(键, 值) 元组数组. *在序列中遍历时,索引位置和对应值可以使用 enumerate()函数同时得到 *同时遍历两个或更多的序列,可以使用 zi ...

  7. python基础教程菜鸟教程-终于懂得python入门菜鸟教程

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python入门 ...

  8. Vue.js 教程---菜鸟教程

    文章目录 教程 安装 起步 模板语法 插值 指令 用户输入 过滤器 缩写 条件语句 循环语句 计算属性 监听属性 样式绑定 事件处理器 表单 组件 组件 - 自定义事件 自定义指令 钩子 路由( vu ...

  9. python基础教程菜鸟教程-python基础菜鸟教程,Python的基础语法

    原标题:python基础菜鸟教程,Python的基础语法 什么是Python?Python是一门简单直观的编程语言,并且目前是开源的,可以方便任何人使用. Python的开发哲学:用一种方法,最好是只 ...

最新文章

  1. 05、HttpServletRequest
  2. php数组转为js json,php如何将数组转为json数组,php数组转为js数组
  3. Java中的nextInt()和next()与nextLine()区别详解
  4. 2.3.3 操作系统之实现临界区进程互斥的硬件实现方法
  5. delphi控制POS打印机
  6. FFT/NTT卷积神级副本
  7. 定时器实现方式之TimerTask、Timer
  8. Hadoop伪分布式集群的安装部署
  9. __nonnull((1)) 未完待续
  10. windows编程 使用C++实现多线程类
  11. 【白皮书下载】开源生态白皮书(2020年).pdf(附下载链接)
  12. 使用 T4 文本模板生成设计时代码
  13. php100视频教程(全集)
  14. Filter实现敏感词汇过滤
  15. 渗透测试工程师的Linux学习之路
  16. 2022-2027年中国分散染料行业市场全景评估及发展战略规划报告
  17. saltstack常用操作(七)---beacons模块的使用
  18. 世界各地 史上最全最详细无线通信频率分配表(内容含概wifi、2.4G、5G,绝对值得收藏)
  19. 电角速度和机械角速度
  20. 计算机毕设(附源码)JAVA-SSM基于云服务器网上论坛设计

热门文章

  1. 计算机变革时代:虚拟化和云计算
  2. python星空画法教程_对比几段代码,看看你是 Python 菜鸟还是老鸟
  3. mysql 核对_核对数据库表记录的shell脚本
  4. KDD2021 放榜,6 篇论文带你了解阿里妈妈AI技术
  5. java 异常管理员_java web在进行管理员操作的时候,抛出了下面的异常,怎么解决啊...
  6. JAVA秒杀mysql层实现_Java商城高并发秒杀系统架构分析设计与开发实战
  7. java poi 需要jar_Java 之 POI各Jar包作用
  8. 金计算机一级,计算机一级B
  9. html中从下往上遮罩效果,css制作从下往上逐渐显示的div
  10. 编程语言50年来的变化,我用50种编程语言告诉你“Hello world”怎么写!