组合模式实例之文件浏览
来源:互联网 发布:龟头增大知乎 编辑:程序博客网 时间:2024/06/05 02:21
一.实例说明:
文件有不同的类型,不同类型的文件其浏览方式有所区别,如文本文件和图片文件的浏览方式就不同。对文件夹的浏览实际上就是对其中所包含文件的浏览,而客户端可以一致地对文件和文件进行操作,无须关心它们的区别。使用组合模式来浏览文件的浏览操作。
二.实例类图:
代码:
package MyElement;
public abstract class AbstractFile {public abstract void add(AbstractFile element);public abstract void remove(AbstractFile element);public abstract void display();}
package feaffile;
class Video:
import MyElement.AbstractFile;public class VideoFile extends AbstractFile{private String fileName;public VideoFile(String filename){this.fileName=new String();this.fileName=filename;}public void add(AbstractFile element){System.out.println("VideoFile:add");}public void remove(AbstractFile element){System.out.println("VideoFile:remove");}public void display(){System.out.println(fileName);System.out.println("VideoFile:display");}}
class TextFile:
import MyElement.AbstractFile;public class TextFile extends AbstractFile{private String fileName;public TextFile(String filename){this.fileName=new String();this.fileName=filename;}public void add(AbstractFile element){System.out.println("TextFile:add");}public void remove(AbstractFile element){System.out.println("TextFile:remove");}public void display(){System.out.println(fileName);System.out.println("TextFile:display");}}
class ImageFile:
</pre><pre class="java" name="code">import MyElement.AbstractFile;public class ImageFile extends AbstractFile{private String fileName;public ImageFile(String filename){this.fileName=new String();this.fileName=filename;}public void add(AbstractFile element){System.out.println("ImageFile:add");}public void remove(AbstractFile element){System.out.println("ImageFile:remove");}public void display(){System.out.println(fileName);System.out.println("ImageFile:display");}}
class Floder:
import java.util.*;import MyElement.AbstractFile;public class Folder extends AbstractFile{private String fileName;private ArrayList fileList=new ArrayList();public Folder(String filename){this.fileName=new String();this.fileName=filename;}public void add(AbstractFile element){fileList.add(element);System.out.println("Folder:add");}public void remove(AbstractFile element){fileList.remove(element);System.out.println("Folder:remove");}public void display(){for(Object object:fileList){((AbstractFile)object).display();}System.out.println("Folder:display");}}
package Client;
class Client:
import MyElement.AbstractFile;import feaffile.Folder;import feaffile.ImageFile;import feaffile.TextFile;import feaffile.VideoFile;public class Client {public static void main(String a[]){AbstractFile obj1,obj2,obj3,obj4,obj5;Folder plate1,plate2,plate3;obj1=new ImageFile("aaa");obj2=new TextFile("bbb");plate1=new Folder("ccc");plate1.add(obj1);plate1.add(obj2);obj3=new VideoFile("ddd");obj4=new VideoFile("eee");plate2=new Folder("fff");plate2.add(obj3);plate2.add(obj4);obj5=new ImageFile("ggg");plate3=new Folder("hhh");plate3.add(plate1);plate3.add(plate2);plate3.add(obj5);plate3.display();}}
0 0
- 组合模式实例之文件浏览
- net设计模式实例之组合模式(Composite Pattern)
- 23种设计模式C++实例之组合模式
- Net设计模式实例之组合模式(Composite Pattern)
- java组合模式实例
- 组合模式实例
- 组合模式的实例
- 文件处理之浏览文件
- 外观模式实例之文件加密
- 设计模式之组合
- 组合模式之我见
- 设计模式之组合
- 设计模式 之 组合
- java 之 组合模式
- GOF之组合模式
- Java 之 组合模式
- js之组合模式
- 设计模式之组合
- jquery获取radio选中值
- 买车风波
- spark使用
- 关于ajax简单的前台判断
- webservice相关总结
- 组合模式实例之文件浏览
- NBA总决赛中提高篮球水平的神器
- Win7命令行使用MySQL
- 字符串正则表达式匹配
- VC++ 兼容性 资料收集
- MyEclipse10.6 myeclipse2013下添加jadClipse反编译插件
- 上下滚动文字自定义控件
- 足球守门机器人(附视频)——智能机器人守门员—— 梅西足球机器人守门员——守门员机器人介绍
- 女友没救了~追美国队长还要入手KIMON~