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

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("");
}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值