标签:
1.组合模式(Composite)
定义:组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便
使用场景:将多个对象组合在一起进行操作,常用于表示树形结构中,例如二叉树,数等,文件目录。

2.文件复制例子
文件类:
//对文件各种操作的接口
public interface FileOperate {
void copy();
}
//file:单个文件
class File implements FileOperate
{
//文件名
private String fileName=null;
public File(String fileName)
{
this.fileName=fileName;
}
@Override
public void copy() {
// TODO Auto-generated method stub
System.out.println("复制“"+fileName+"”文件。。。");
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
//文件夹:包含所有的子文件
class FileFolder implements FileOperate
{
//文件夹名
private String folderName=null;
//所有的子文件
private ArrayList<File> child=new ArrayList<File>();
public FileFolder(String folderName)
{
this.folderName=folderName;
}
//添加子文件方法
public void add (File file)
{
child.add(file);
}
@Override
public void copy() {
// TODO Auto-generated method stub
System.out.println("当前文件夹:"+folderName);
Iterator it=child.iterator();
while(it.hasNext())
{
File f=(File) it.next();
f.copy();
}
}
public String getFolderName() {
return folderName;
}
public void setFolderName(String folderName) {
this.folderName = folderName;
}
}
测试:
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
FileFolder root=new FileFolder("我的视频");
File file1=new File("致命ID.avi");
File file2=new File("两天一夜.rmvb");
//添加文件
root.add(file1);
root.add(file2);
//复制文件
root.copy();
}
}
运行结果:
当前文件夹:我的视频 复制“致命ID.avi”文件。。。 复制“两天一夜.rmvb”文件。。。
标签:
原文地址:http://www.cnblogs.com/beyondbycyx/p/4434563.html