composite组合模式 -- java模式
- 组合模式1
- 组合模式2
组合模式1
Component.java
package com.mark.pattern.composite;
public interface Component {
public void doSomething();
}
Composite.java
package com.mark.pattern.composite;
import java.util.ArrayList;
import java.util.List;
/**
* 组合模式
*
*/
public class Composite implements Component{
private List<Component> list =new ArrayList<Component>();
public void add(Component component) {
list.add(component);
}
public void remove(Component component) {
list.remove(component);
}
public List<Component> getAll(){
return this.list;
}
@Override
public void doSomething() {
for(Component component : list) {
component.doSomething();
}
}
}
Leaf.java
package com.mark.pattern.composite;
public class Leaf implements Component{
@Override
public void doSomething() {
System.out.println("执行方法");
}
}
Client.java
package com.mark.pattern.composite;
public class Client {
public static void main(String[] args) {
Component leaf1 = new Leaf();
Component leaf2 = new Leaf();
Composite comp1 = new Composite();
comp1.add(leaf1);
comp1.add(leaf2);
Component leaf3 = new Leaf();
Component leaf4 = new Leaf();
Composite comp2 =new Composite();
comp2.add(comp1);
comp2.add(leaf3);
comp2.add(leaf4);
comp2.doSomething();
}
}
组合模式2
Component.java
package com.mark.pattern.composite2;
import java.util.List;
public interface Component {
public void doSomething();
public void add(Component component);
public void remove(Component component);
public List<Component> getAll();
}
Composite.java
package com.mark.pattern.composite2;
import java.util.ArrayList;
import java.util.List;
public class Composite implements Component {
private List<Component> list = new ArrayList<Component>();
@Override
public void add(Component component) {
list.add(component);
}
@Override
public void doSomething() {
for (Component component : list) {
component.doSomething();
}
}
@Override
public List<Component> getAll() {
return this.list;
}
@Override
public void remove(Component component) {
list.remove(component);
}
}
Leaf.java
package com.mark.pattern.composite2;
import java.util.List;
public class Leaf implements Component {
@Override
public void add(Component component) {
}
@Override
public void doSomething() {
System.out.println("执行方法");
}
@Override
public List<Component> getAll() {
return null;
}
@Override
public void remove(Component component) {
}
}
Client.java
package com.mark.pattern.composite2;
public class Client {
public static void main(String[] args) {
Component leaf1 = new Leaf();
Component leaf2 = new Leaf();
Component comp1 = new Composite();
comp1.add(leaf1);
comp1.add(leaf2);
Component leaf3 = new Leaf();
Component leaf4 = new Leaf();
Component comp2 =new Composite();
comp2.add(comp1);
comp2.add(leaf3);
comp2.add(leaf4);
comp2.doSomething();
}
}
分享到:
相关推荐
C#面向对象设计模式纵横谈(9):Composite 组合模式(结构型模式) 体验课程
C#面向对象设计模式纵横谈(9):Composite 组合模式(结构型模式) (Level 300)
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第9节:结构型模式Composite组合模式
将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。
C++设计模式课件20_Composite_组合模式.pdf
设计模式C++学习之组合模式(Composite)
23种Python设计模式示例演示源码包,比如包括了工厂模式、Bridge桥接模式、Builder构建模式、Facade外观模式、Adapter适配器模式,Composite组合模式、Decorator装饰器模式,FactoryMethod工厂方法模式、Flyweight享...
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的...
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的...
C#面向对象设计模式纵横谈(9):Composite 组合模式(结构型模式) C#面向对象设计模式纵横谈(10):Decorator 装饰模式(结构型模式) C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式) C#面向对象设计...
组合模式(Composite Pattern)是一种对象结构型模式,其定义是将多个对象组合成树形结构以表示“整体-部分”关系的层次结构。它使得客户端对单个对象和组合对象的使用具有一致性。在组合模式中,对象被组织成树形...
3.3 COMPOSITE 组合模式 38 3.4 DECORATOR 装饰模式 43 3.5 FACADE 外观模式 46 3.6 FLYWEIGHT 享元模式 49 3.7 PROXY 代理模式 53 行为模式 57 4.1 CHAIN OF RESPONSIBILITY 职责链模式 57 4.2 COMMAND 命令模式 61...
组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式的适用场合是,一般当你发现需求中是体现部分与整体层次的结构时,...
3、Composite 组合模式 4、Decorator装饰者 5、Façade 外观、门面 6、Flyweight 享元模式 7、Proxy 代理模式 11个行为模式: 1、Chain of Responsibility 职责链 2、Command 命令 3、Interpreter 解释器 ...
c++设计模式-结构型模式-组合模式;qt工程;c++简单源码; 组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系...
使用组合模式有如下的好处: l 定义了饱含基本对象和组合对象的类层次结构,基本对象可以被组合成更复杂的组合对象,而这个组合对象有可以被组合。 简化客户代码 客户可以一直地使用组合结构和单个对象,通常用户不...
主要是利用工具设计的UML图 博文链接:https://futrueboy.iteye.com/blog/385925
C#面向对象设计模式纵横谈(9):Composite 组合模式(结构型模式).rar
Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现