public abstract class FolderComponent {
private String name;
public String getName() {
return name;
}
public void setName(final String name) {
this.name = name;
}
public FolderComponent() {
}
public FolderComponent(final String name) {
this.name = name;
}
public abstract void add(FolderComponent component);
public abstract void remove(FolderComponent component);
public abstract void display();
}
public class FileLeaf extends FolderComponent {
public FileLeaf(final String name) {
super(name);
}
@Override
public void add(final FolderComponent component) {
// ...
}
@Override
public void remove(final FolderComponent component) {
// ...
}
@Override
public void display() {
System.out.println("FileLeaf:" + this.getName());
}
}
public class FolderComposite extends FolderComponent {
private final List<FolderComponent> components;
public FolderComposite(final String name) {
super(name);
this.components = new ArrayList<FolderComponent>();
}
public FolderComposite() {
this.components = new ArrayList<FolderComponent>();
}
@Override
public void add(final FolderComponent component) {
this.components.add(component);
}
@Override
public void remove(final FolderComponent component) {
this.components.remove(component);
}
@Override
public void display() {
System.out.println("FolderComposite---name:" + this.getName());
for (final FolderComponent component : components) {
System.out.println("FolderComposite---component-name:" + component.getName());
}
}
}
public class Client
{
public static void main(final String[] args)
{
final FolderComponent leaf = new FileLeaf("runnable file");
leaf.display();
final FolderComponent folder = new FolderComposite("new folder");
folder.add(new FileLeaf("content1 in new folder"));
folder.add(new FileLeaf("content2 in new folder"));
folder.display();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有