⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compositeequipment.java

📁 23种GOF模式的java代码实现
💻 JAVA
字号:
package org.gof.structure.composite;
import java.util.*;
public abstract class CompositeEquipment
    extends Equipment {
  private int i = 0;

//定义一个Vector 用来存放'儿子'
  private List equipment = new ArrayList();

  public CompositeEquipment(String name) {
    super(name);
  }

  public boolean add(Equipment equipment) {
    this.equipment.add(equipment);
    return true;
  }

  public double netPrice() {
    double netPrice = 0;
    Iterator iter = equipment.iterator();
    while (iter.hasNext()) {
      netPrice += ( (Equipment) iter.next()).netPrice();
    }
    return netPrice;
  }

  public double discountPrice() {
    double discountPrice = 0.;
    Iterator iter = equipment.iterator();
    while (iter.hasNext()) {
      discountPrice += ( (Equipment) iter.next()).discountPrice();
    }
    return discountPrice;
  }

  //注意这里,这里就提供用于访问自己组合体内的部件方法。
  //上面dIsk 之所以没有,是因为Disk是个单独(Primitive)的元素.
  public Iterator iter() {
    return equipment.iterator();
  }

  //重载Iterator方法
  public boolean hasNext() {
    return i < equipment.size();
  }

//重载Iterator方法
  public Object next() {
    if (hasNext()) {
      return equipment.get(i++);
    }
    else {
      throw new NoSuchElementException();
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -