composite模式在什么样的情况下比较适用啊

小弟刚开始学习设计模式,请大家指点指点,最好有简单的例子,谢谢大家!!

我看了一下这个模式很容易理解 :)呵呵
你看一下本站设计模式中的composite 模式 bq的大作 !

用javascript+composite模式+关系数据库可以方便的实现一个树形目录结构。

banq的文章里有过讨论。

当一个类的定义中有递归出现时,就需要用到 composite 模式。

比如树。树的结点可以是叶子结点,也可以是另一棵子级树。也就是树是由子树(叶子可看成是退化的子树)构成的,出现的递归,所以使用 composite 模式。

想想马三立的相声《挠挠》,那个秘方可看成是退化了的 composite。


interface Openable
{
void Open();
}

class Script implements Openable // 纸条
{
public void Open()
{
System.out.println(
"挠挠\n");
}
}

public class Package implements Openable
// 纸包
{
private Openable content;

public Package(Script s)
{
content = s;
}

public Package(Package p)
{
content = p;
}

public void Open()
{
System.out.print(
"打开一层纸包\n");
content.Open();
}
}

public class Secret implements Openable
// 祖传秘方
{
private Openable secret;
public Secret()
{
secret = new Package(new Package(new Package(new Package(new Package(new Package(new Package(new Package(new Package(new Package(new Script()))))))))));
}

public void Open()
{
secret.Open();
}
}

composite牛比之处就是她借了类库框架的光了

我用到他是在分析xml的时候,开始没有想到
是属于composite模式,我也是昨天来到这里才知道的