再话设计模式-组合模式

1 说明

      在《设计模式-结构型设计模式》一文中,我提到了组合模式。本文给出了一个新的组合模式的小例子。

2 一个新例子

      闲话少说,直接上代码。(Talk is cheap. Show me the code.)
代码清单

  1. Shape.java --interface
  2. CompositeShape.java
  3. CompositeTest.java

1 Shape.java

public interface Shape {
    void draw();
}

2 CompositeShape.java

public class CompositeShape implements Shape {
    private Vector itsShapes = new Vector();

    public void add(Shape s) {
        itsShapes.add(s);
    }

    @Override
    public void draw() {
        for (int i = 0; i < itsShapes.size(); i++) {
            Shape shape = (Shape) itsShapes.elementAt(i);
            shape.draw();
        }
    }
}

3 CompositeTest.java

public class CompositeTest {
    public static void main(String[] args) {
        CompositeShape compositeShape = new CompositeShape();

        compositeShape.add(new Circle());
        compositeShape.add(new Square());
        compositeShape.add(new Circle());
        compositeShape.add(new Circle());

        compositeShape.draw();
    }
}

结果:
在这里插入图片描述
      诶,这个例子好像比《设计模式-结构性设计模式》一文中的例子还简单~,

      就这样吧,这篇文章水水过,周天愉快!

      如果找不到Circle和Square的类来我这篇文章中找《再话设计模式-工厂模式-使用类名实例化对象》

3 结论

      COMPOSITE模式是一个非常简单但具有深刻内涵的模式。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值