设计模式之组合模式

组合模式:以“整体-部分”的层次结构,将对象以树型结构组合起来。

如下图所示:

组合模式首先得定义一个用来管理和访问部件们的抽象类。

public abstract class Equipment
{

//价格
  public abstract double netPrice();
  //增加部件方法  

  public abstract bool add(Equipment equipment);

//删除部件方法

Public abstract bool remove(Equipment equipment);
  //注意这里,这里就提供一种用于访问组合体类的部件方法。

  public abstract Equipment getEquip() ; 
}

再创建一个组合体的部件

class element:Equipment

{

public override double netPrice()

{

返回些部件价格
}

}

 

现在我们再来定义一个组合体,也就是组合各个部件的类。

class CompositeEquipment : Equipment
{
  //定义一个Vector 用来存放'儿子'
  private List<Equipment> equipment=new List();

public override double netPrice()

{

把子部件的价格加起来
}

    重载add()remove()getEquip()函数。

}

以下是如何使用这个组合模式

CompositeEquipment composite=new CompositeEquipment();

composite.add(new element());

composite.add(new element());

composite.netPrice();计算出总价格

当然这是个组合模式的例子,实际上上面的这个例子是没有啥意义的,但是它却是一个简单易懂的组合模式的模型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值