合成(Composite)模式的Java实现[00原创]
2007-09-22 19:54
429 查看
1. 类图
2. Java实现代码
package cn.edu.ynu.sei.composite;/**
* 抽象组件角色
*
* @author 88250
* @version 1.0.0, 2007-9-4
*/
public interface Component
{
/**
* 返回自己的实例
* @return
*/
public Composite getComposite();
/**
* 某个业务方法
*/
public void sampleOperation();
}
package cn.edu.ynu.sei.composite;
import java.util.Enumeration;
import java.util.Vector;
/**
* 树枝角色
*
* @author 88250
* @version 1.0.0, 2007-9-4
*/
public class Composite implements Component
{
private Vector<Component> componentVector = new Vector<Component>();
@Override
public Composite getComposite()
{
return this;
}
@Override
public void sampleOperation()
{
Enumeration<Component> enumeration = components();
while (enumeration.hasMoreElements())
{
enumeration.nextElement().sampleOperation();
}
}
/**
* 聚集管理方法,增加一个自构件对象
* @param component
*/
public void add(Component component)
{
componentVector.addElement(component);
}
/**
* 聚集管理方法,删除一个子构件对象
* @param component
*/
public void remove(Component component)
{
componentVector.removeElement(component);
}
/**
* 聚集管理方法,返回聚集的Enumeration对象
* @return
*/
private Enumeration<Component> components()
{
return componentVector.elements();
}
}
package cn.edu.ynu.sei.composite;
/**
* 树叶角色
*
* @author 88250
* @version 1.0.0, 2007-9-4
*/
public class Leaf implements Component
{
@Override
public Composite getComposite()
{
// TODO Auto-generated method stub
return null;
}
@Override
public void sampleOperation()
{
// TODO Auto-generated method stub
}
}
3. 总结
这是合成(组合)模式的安全形式实现。需要注意的是,必须强调是在“部分—整体”关系成立时才可以考虑使用合成模式。4. 参考文献
《Design Patterns》、《Java与模式》相关文章推荐
- 建造者(BUilder)模式的Java实现[00原创]
- 缺省适配器(Default Adapter)模式的Java实现[00原创]
- 原型(Prototype)模式的Java实现[00原创]
- 适配器(Adapter)模式的Java实现[00原创]
- 工厂方法(Factory Method)模式的Java实现[00原创]
- 简单工厂(Simple Factory)模式的Java实现[00原创]
- 单例(Singleton)模式的Java实现[00原创]
- 多例(Multiton)模式的Java实现[00原创]
- 抽象工厂(Abstract Factory)模式的Java实现[00原创]
- Java设计模式——合成模式(Composite)
- java实现Composite(组合)模式
- Java与模式 合成模式Composite
- 学习php设计模式 php实现合成模式(composite)
- 学习php设计模式 php实现合成模式(composite)
- Java 实现组合(Composite)模式
- Java 实现组合(Composite)模式
- 彻底解决Java的字符编码问题[00原创]
- java实现观察者模式
- JAVA设计模式(10):结构型-组合模式(Composite)
- 设计模式——用Java实现工厂模式