设计模式【组合实体模式CompositeEntityPattern】
来源:互联网 发布:it岗位职责 编辑:程序博客网 时间:2024/05/22 03:49
组合实体模式
组合实体模式(Composite Entity Pattern)的参与者有:
- 组合实体(Composite Entity) - 它是主要的实体 bean。它可以是粗粒的,或者可以包含一个粗粒度对象,用于持续生命周期。
- 粗粒度对象(Coarse-Grained Object) - 该对象包含依赖对象。它有自己的生命周期,也能管理依赖对象的生命周期。
- 依赖对象(Dependent Object) - 依赖对象是一个持续生命周期依赖于粗粒度对象的对象。
- 策略(Strategies) - 策略表示如何实现组合实体。
实现
我们将创建作为组合实体的 CompositeEntity 对象。CoarseGrainedObject 是一个包含依赖对象的类。
CompositeEntityPatternDemo,我们的演示类使用 Client 类来演示组合实体模式的用法。
创建依赖对象
DependentObject1.cs
namespace CompositeEntityPattern{ class DependentObject1 { private string data; public void setData(string data) { this.data = data; } public string getData() { return data; } }}
DependentObject2.cs
namespace CompositeEntityPattern{ class DependentObject1 { private string data; public void setData(string data) { this.data = data; } public string getData() { return data; } }}
创建粗粒度对象
CoarseGrainedObject.cs
namespace CompositeEntityPattern{ 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() }; } }}
创建组合实体
CompositeEntity.cs
namespace CompositeEntityPattern{ class CompositeEntity { private CoarseGrainedObject cgo = new CoarseGrainedObject(); public void setData(string data1, string data2) { cgo.setData(data1, data2); } public string[] getData() { return cgo.getData(); } }}
创建使用组合实体的客户端类
Client.cs
using System;namespace CompositeEntityPattern{ class Client { private CompositeEntity compositeEntity = new CompositeEntity(); public void printData() { for (int i = 0; i < compositeEntity.getData().Length; i++) { Console.WriteLine("Data: " + compositeEntity.getData()[i]); } } public void setData(string data1, string data2) { compositeEntity.setData(data1, data2); } }}
演示用法
使用 Client 来演示组合实体设计模式的用法。
CompositeEntityPatternDemo.cs
using System;namespace CompositeEntityPattern{ class CompositeEntityPatternDemo { static void Main(string[] args) { Client client = new Client(); client.setData("Test", "Data"); client.printData(); client.setData("Second Test", "Data1"); client.printData(); Console.Read(); } }}
验证输出
Data: TestData: DataData: Second TestData: Data1
阅读全文
0 0
- 设计模式【组合实体模式CompositeEntityPattern】
- 设计模式学习笔记--组合实体模式
- 设计模式(27)--组合实体模式
- 【设计模式】组合实体模式(Composite Entity Pattern)
- Java组合实体模式
- Java组合实体模式
- 设计模式:组合模式
- 设计模式-----组合模式
- 设计模式 组合模式
- 设计模式--组合模式
- 设计模式---组合模式
- 【设计模式】组合模式
- 设计模式 - 组合模式
- 设计模式----组合模式
- 设计模式 - 组合模式
- 设计模式:组合模式
- 设计模式 - 组合模式
- 设计模式-组合模式
- Composer是-PHP 依赖管理工具
- 排序算法(六) 堆排序
- linux查看文件前几行和后几行的命令
- 使用FastJson实现去除Json中为空或null的节点
- Nswoj每日一题:街区最短路径问题
- 设计模式【组合实体模式CompositeEntityPattern】
- ARM寄存器
- 面试题
- caffe源码阅读之layer(2)——DataLayer层
- 数据库读写分离
- 老师讲,这是个hin重要的C语言习题
- 图解Http知识点总结
- Python单下划线、双下划线、头尾双下划线
- 巧用VSphere-HostPorfile配置ESXi主机 --"瑞友杯"虚拟化征文