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”文件。。。
时间: 2024-11-13 10:59:37