题目:
/**
* 使用组合模式设计一个杀毒软件(AntiVirus)的框架,
* 该软件既可以对某个文件夹(Folder)杀毒,
* 也可以对某个指定的文件(File)进行杀毒,
* 文件种类包括文本文件TextFile、图片文件ImageFile、
* 视频文件VideoFile。绘制类图并编程模拟实现。
* */
类图

java 实现
接口MyElement
package com.yuzhyun.test8;
public interface MyElement {
void defeatVirus();
}
Folder
package com.yuzhyun.test8;
import java.util.ArrayList;
import java.util.List;
import org.omg.CosNaming.NamingContextExtPackage.AddressHelper;
public class Folder implements MyElement {
List<MyElement> elementList = new ArrayList<MyElement>();
@Override
public void defeatVirus() {
System.out.println("进入子目录。。。");
for (MyElement element : elementList) {
element.defeatVirus();
}
}
void add(MyElement myElement) {
elementList.add(myElement);
}
private void remove(MyElement myElement) {
elementList.remove(myElement);
}
}
ImageFile(TextFile、VideoFile类似)
package com.yuzhyun.test8;
public class ImageFile implements MyElement {
@Override
public void defeatVirus() {
System.out.println("******ImageFile杀毒*******");
}
}
客户类Client
package com.yuzhyun.test8;
public class Client {
public static void main(String[] args) {
Folder rootFolder=new Folder();
rootFolder.add(new ImageFile());
rootFolder.add(new TextFile());
Folder folder2=new Folder();
folder2.add(new VideoFile());
rootFolder.add(folder2);
rootFolder.defeatVirus();
}
}