- 浏览: 171522 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (193)
- Axis2 (10)
- Andriod (2)
- Java (22)
- Eclipse (2)
- 程序人生 (3)
- Windows (1)
- Sql Server 2005/2008 (7)
- 健身 (2)
- Log4j (1)
- Ant (1)
- Fatjar (2)
- 国际化 (1)
- Linux (3)
- JDBC (1)
- Oracle (2)
- 各种报错 (4)
- SWT (5)
- Tomcat (2)
- 车辆管理 (1)
- SVN (2)
- Spring (5)
- 域名服务器 (0)
- HaoWaYa (1)
- FTP (1)
- 集散中心 (1)
- 专业知识 (1)
- 面试准备 (19)
- 设计模式 (22)
- Junit (1)
- 软件下载 (3)
- 深入理解Java虚拟机 (3)
- 数据结构 (4)
- 雅思 托福 (0)
- UML (1)
- Maven (1)
- CV (1)
- ServiceMix (1)
- 电子书 (5)
- Struts1/2 (4)
- DOM W3C DHTML (3)
- Jawr (1)
- LoadRunner (1)
- Java反编译 (0)
- 英语学习 (0)
- 技术书籍 (1)
- Cygwin (0)
- ibatis (1)
- 数据库 (1)
- jQuery (0)
- s (2)
- 源代码项目 (5)
- JSRs (0)
- JCP (0)
- XML (2)
- Dojo (3)
- Effective Java (1)
- 一站到底 (3)
- JavaScript (6)
- DB2 (1)
- 刷机 (1)
- 字符 (1)
- Dynamic Web Project (1)
- 股市日记 (1)
- 代码片段 (0)
- CSS (1)
- PDF (0)
- 英语口语 (1)
- 乒乓球 (1)
- 体检 (0)
- 送花 (0)
- 面试准备-再战江湖 (5)
- ddq (0)
- sss (0)
- ssssss (0)
- 2020面试 (0)
最新评论
-
samsongbest:
Copperfield 写道你的目标很远大,佩服~惭愧,都忘了 ...
人生目标 -
Copperfield:
你的目标很远大,佩服~
人生目标
1.含义
合成模式把部分和整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由它们复合而成的合成对象同等看待。
2.类图
安全式和透明式的合成模式
安全式的合成模式:
叶子节点中没有管理聚集的方法,只有合成对象里才有。
透明式的合成模式:管理聚集的方法被移动到了接口中,叶子和合成对象都有这些方法,相对透明但不安全,叶子并不需要那些方法,一般实现了也是空方法体。
3.类代码
安全式的
/* * 抽象构件角色 */ public interface Component { Composite getComposite(); void sampleOperation(); } /* * 树枝构件角色 */ public class Composite implements Component { private Vector componentVector = new java.util.Vector(); public Composite getComposite() { return this; } public void sampleOperation() { Enumeration e = components(); while (e.hasMoreElements()) { ((Component) e.nextElement()).sampleOperation(); } } public void add(Component c) { componentVector.addElement(c); } public void remove(Component c) { componentVector.removeElement(c); } public Enumeration components() { return componentVector.elements(); } } /* * 树叶构件角色 */ public class Leaf implements Component { public void sampleOperation() { } public Composite getComposite() { return null; } } /* * 测试类 */ public class Test { public static void main(String[] args) { Composite c = new Composite(); Leaf l = new Leaf(); c.sampleOperation(); l.sampleOperation(); c.add(c); } }
透明式的
/* * 抽象构件角色 */ public interface Component { void sampleOperation(); Composite getComposite(); void add(Component c); void remove(Component c); Enumeration components(); } /* * 树枝构件角色 */ public class Composite implements Component { private Vector componentVector = new java.util.Vector(); public Composite getComposite() { return this; } public void sampleOperation() { Enumeration e = components(); while (e.hasMoreElements()) { ((Component) e.nextElement()).sampleOperation(); } } public void add(Component c) { componentVector.addElement(c); } public void remove(Component c) { componentVector.removeElement(c); } public Enumeration components() { return componentVector.elements(); } } /* * 树叶构件角色 */ public class Leaf implements Component { public void sampleOperation() { } public Composite getComposite() { return null; } public void add(Component c) { } public void remove(Component c) { } public Enumeration components() { return null; } } /* * 测试类 */ public class Test { public static void main(String[] args) { Composite c = new Composite(); Leaf l = new Leaf(); c.sampleOperation(); l.sampleOperation(); c.add(c); l.add(c); } }
z
发表评论
-
22 行为模式 - 调停者(Mediator)模式
2012-08-23 10:21 8331.用意 调停者模式包装了一系列对象相互 ... -
21 行为模式 - 解释器(Interpreter)模式
2012-08-23 10:18 7631.用意 给定一个语言之后,解释器模式可以定 ... -
20 行为模式 - 访问者(Visitor)模式
2012-08-22 10:28 8681.用意 封装一些施加于某种数据结构元素之上的操 ... -
19 行为模式 - 状态(State)模式
2012-08-22 10:25 7571.用意 状态模式允许一个对象在其内部状态改变的时候 ... -
18 行为模式 - 备忘录(Memento)模式
2012-08-22 10:12 847需要跟进多重检查点 ... -
17 行为模式 - 命令(Command)模式
2012-08-20 10:29 5661.用意 命令模式把一个请求或者操作封装到一个对象中。命令模 ... -
16 行为模式 - 责任链(Chain of Responsibility)模式
2012-08-20 10:24 7561.用意 在责任链模式里,很多对象由每一个对象对其下家的引用 ... -
15 行为模式 - 迭代子(Iterator)模式
2012-08-17 10:32 7411.用意 迭代子模式又叫游标模式,可以顺序地访问一个聚集中的 ... -
14 行为模式 - 观察者(Observer)模式
2012-08-09 10:27 8081.用意 观察者模式定义了一种一对多的依赖关系,让多个观察者 ... -
13 行为模式 - 模板方法(Template Method)模式
2012-08-09 10:21 6911.用意 准备一个抽象类,将部分逻辑以具体方法以及具体构造子 ... -
12 行为模式 - 策略(Strategy)模式
2012-08-07 10:00 7241.用意 针对一组算法,将每一个算法封装到具有共同接口的 ... -
11 结构模式 - 桥梁(Bridge)模式
2012-08-01 10:01 7371.用意 2.类图 3.代码 z 1.用意 将 ... -
10 结构模式 - 门面(Facade)模式
2012-07-31 13:52 6851.含义 外部与一个子系统的通信必须通过一个统一的门面对象进 ... -
09 结构模式 - 享元(Flyweight)模式
2012-07-31 13:47 8121.含义 享元模式以共享的方式高效地支持大量的细粒度对象。 ... -
8 代理(Proxy)模式
2012-07-31 09:48 8981.含义 代理模式给某一个对象提供一个代理对象,并由代理对象 ... -
7 装饰(Decorator)模式
2012-07-27 14:03 7021.含义 装饰模式又名包装(Wrapper)模式,以对客户端 ... -
5 适配器(Adapter)模式
2012-07-27 13:52 7381. 含义 把一个类的接口变换成客户端所期待的另一种接口,从 ... -
4 原始模型(Prototype)模式
2012-07-27 10:49 7961. 含义 通过给出一个原型对象来指明所要创建的对象的类型, ... -
3 建造(Builder)模式
2012-07-27 09:44 7141.含义:建造模式可以将一个产品的内部表象与产品的生成过程分割 ... -
1 抽象工厂(Abstract Factory)模式
2012-07-26 17:54 7381.类图 2.类 Creator ...
相关推荐
合成模式(Composite Pattern)是软件工程中的一种设计模式,它属于结构型模式,主要用于处理对象的组合。在合成模式中,我们能够将简单对象和组合对象以统一的方式进行操作,这样用户就可以忽略对象的复杂性,而...
- 装饰器模式(Decorator):常与Composite模式结合,共享相似的接口,用于动态增加对象功能。 - 享元模式(Flyweight):共享组件,但不引用其父组件。 - 迭代器模式(Iterator):用于遍历Composite中的对象。 ...
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型...6、合成复用原则(Composite Reuse Principle) 原则是尽量使用合成/聚合的方式,而不是使用继承。
Composite 模式可以使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。 例如,在 Composite 模式的例子中,可以使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。 9. ...
java的设计模式大体上分为三大类: ...6、合成复用原则(Composite Reuse Principle) 原则是尽量使用合成/聚合的方式,而不是使用继承。继承实际上破坏了类的封装性,超类的方法可能会被子类修改。
Java与模式:迭代子(Iterator)模式、合成(Composite)模式、抽象工厂模式等
### JAVA与模式之合成模式详解 #### 一、引言 在阎宏博士的经典著作《JAVA与模式》中,合成模式被详细介绍并解释为一种重要的设计模式,它属于对象的结构模式之一,常被称为“部分—整体”模式。合成模式通过树形...
第11章 合成模式(Composite) 2 11.1 模式解说 11.2 结构和用法 11.2.1 模式结构 11.2.2 代码模板 11.2.3 问题讨论 11.3 范例与实践 11.3.1 合成模式在组织机构管理系统中的应用 11.3.2 范例小结 第12章 ...
第5章 合成(composite)模式 39 第6章 桥接(bridge)模式 52 第7章 职责型模式介绍 62 第8章 单例(singleton)模式 67 第9章 观察者(observer)模式 72 第10章 调停者(mediator)模式 85 第11章 代理(proxy)模式 97 第12...
1. **合成(Composite)模式**:合成模式允许我们构建树形结构来表示部分-整体的关系。在C#中,它常用于构建分层的复杂对象,使得用户可以统一处理单个对象和对象组合,提供了“一视同仁”的操作接口。 2. **桥梁...
在结构型设计模式中,合成模式(Composite)和享元模式(Flyweight)是两个重要的模式。 首先,我们来讨论合成模式。合成模式,又称为组合模式,它允许将对象组合成树形结构来表示整体/部分的层次结构。这种结构...
第11章 合成模式(Composite) 2 11.1 模式解说 11.2 结构和用法 11.2.1 模式结构 11.2.2 代码模板 11.2.3 问题讨论 11.3 范例与实践 11.3.1 合成模式在组织机构管理系统中的应用 11.3.2 范例小结 ...
3. `context.globalCompositeOperation`:设置或返回当前的合成模式,这决定了新图像如何与画布上的已有图像结合。例如,"source-over"表示新图像覆盖旧图像,"multiply"则是将新图像与旧图像相乘等。 4. `canvas....
7. 合成模式(Composite) 合成模式将对象组合成树形结构以表示“部分-整体”的层次结构。这种模式使得客户对单个对象和复合对象的使用具有一致性。 8. 装饰模式(Decorator) 装饰模式动态地给一个对象添加一些...
8. 合成模式(Composite Pattern) 合成模式是一种结构模式,提供了一种将对象组合成树形结构的方式,使得客户端可以统一地对待单个对象和对象组合。合成模式的优点是可以实现对象的组合和递归,提高了代码的可读性...
6. 合成复用原则(Composite Reuse Principle):尽量使用合成/聚合的方式,而不是继承。 在面向对象编程中,以上的设计模式和原则,是开发高质量、易维护、可扩展的软件系统的重要工具和指导思想。
6. 合成复用原则(Composite Reuse Principle):优先使用对象的组合/聚合,而不是继承,以减少类之间的耦合。 【Java中的23种设计模式】 每种设计模式都有其独特的应用场景和优缺点。例如: 1. 工厂方法模式...
6. 合成复用原则(Composite Reuse Principle):原则是尽量使用合成/聚合的方式,而不是使用继承。 Java 23种设计模式的详细实现: 1. 工厂方法模式(Factory Method):分为三种,普通工厂模式、多态工厂模式和...