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