组合模式实例二商品类别树

package fuzhuangshu;

public abstract class Cloth {
protected String name;
public Cloth(String name)
{this.name=name;
}
public abstract void Add(Cloth c);
public abstract void Remove(Cloth c);
public abstract void display(String str);

}

package fuzhuangshu;

import java.awt.List;
import java.util.ArrayList;

public class ConcreteCloth extends Cloth {
private ArrayList<Cloth>children=new ArrayList<Cloth>();
	public ConcreteCloth(String name)
	{super(name);
		
	}
@Override
	public void Add(Cloth c) {
		// TODO 自动生成的方法存根
children.add(c);
	}

	@Override
	public void Remove(Cloth c) {
		// TODO 自动生成的方法存根
children.remove(c);
	}

	@Override
	public void display(String str) {
		str+="-";
		System.out.println(str+name);
		for(Cloth component:children)
		{component.display(str);
		}
	}

	
	
}

package fuzhuangshu;

public class Custome extends Cloth {

	public Custome(String name) {
		super(name);
		// TODO 自动生成的构造函数存根
	}

	@Override
	public void Add(Cloth c) {
		// TODO 自动生成的方法存根

	}

	@Override
	public void Remove(Cloth c) {
		// TODO 自动生成的方法存根

	}

	@Override
	public void display(String str) {
	str+="-";
	System.out.println(str+name);

	}

}
package fuzhuangshu;

public class Jacket extends Cloth {

	public Jacket(String name) {
		super(name);
		// TODO 自动生成的构造函数存根
	}

	@Override
	public void Add(Cloth c) {
		// TODO 自动生成的方法存根

	}

	@Override
	public void Remove(Cloth c) {
		// TODO 自动生成的方法存根

	}

	@Override
	public void display(String str) {
	str+="-";
	System.out.println(str+name);

	}



}
package fuzhuangshu;

public class Shirt extends Cloth {

	public Shirt(String name) {
		super(name);
		// TODO 自动生成的构造函数存根
	}

	@Override
	public void Add(Cloth c) {
		// TODO 自动生成的方法存根

	}

	@Override
	public void Remove(Cloth c) {
		// TODO 自动生成的方法存根

	}

	@Override
	public void display(String str) {
	str+="-";
	System.out.println(str+name);

	}

}
package fuzhuangshu;

public class Skirt extends Cloth {

	public Skirt(String name) {
		super(name);
		// TODO 自动生成的构造函数存根
	}

	@Override
	public void Add(Cloth c) {
		// TODO 自动生成的方法存根

	}

	@Override
	public void Remove(Cloth c) {
		// TODO 自动生成的方法存根

	}

	@Override
	public void display(String str) {
	str+="-";
	System.out.println(str+name);

	}

}
package fuzhuangshu;

public class Test {
public static void main(String args[])
{
ConcreteCloth root=new ConcreteCloth("服装");
ConcreteCloth comp1=new ConcreteCloth("男装");
ConcreteCloth comp2=new ConcreteCloth("女装");
comp1.Add(new  Shirt("衬衫"));
comp1.Add(new Jacket("夹克"));
comp2.Add(new Skirt("裙子"));
comp2.Add(new Custome("礼服"));
root.Add(comp1);
root.Add(comp2);
root.display("");
}
}

猜你喜欢

转载自blog.csdn.net/sdauguanweihong/article/details/89916637
今日推荐