package com.test.com.java;
import java.util.ArrayList;
import java.util.List;
/**
* @author coderchem
* @create 2019-07-27 14:29
*/
public interface AbstractFile { //抽象构件(Component)角色
public void killVier();
}
class VidioFile implements AbstractFile{ //Leaf
private String name;
public VidioFile(String name) {
this.name = name;
}
@Override
public void killVier() {
System.out.println("-----查杀视频:"+name+"~~~完毕!");
}
}
class TextFile implements AbstractFile{ //Leaf
private String name;
public TextFile(String name) {
this.name = name;
}
@Override
public void killVier() {
System.out.println("-----查杀文本:"+name+"~~~完毕!");
}
}
class Ford implements AbstractFile{ //树枝构件(Composite)角色
private List<AbstractFile> abstractFiles = new ArrayList<>();
private String name ;
public Ford(String name) {
this.name = name;
}
public void add(AbstractFile abstractFile){
abstractFiles.add(abstractFile);
}
public void remove(AbstractFile abstractFile){
abstractFiles.remove(abstractFile);
}
@Override
public void killVier() { //这是关键
System.out.println("查杀文件夹:"+name+"下的文件");
for (AbstractFile abstractFile : abstractFiles) {
abstractFile.killVier();
}
}
}
class Client{
public static void main(String[] args) {
Ford ford = new Ford("收藏夹");
TextFile textFile = new TextFile("魔神记");
VidioFile vidioFile = new VidioFile("小猪佩奇");
Ford ford1 = new Ford("垃圾箱");
ford.add(ford1);
ford.add(textFile);
ford.add(vidioFile);
ford.killVier();
}
}