当前位置: 首页 > news >正文

张家港质监站网址/百度sem是什么意思

张家港质监站网址,百度sem是什么意思,mxd 主题Wordpress,什么网站资源多11.3 完整解决方案 为了让系统具有更好的灵活性和可扩展性,客户端可以一致地对待文件和文件夹,Sunny公司开发人员使用组合模式来进行杀毒软件的框架设计,其基本结构如图11-5所示: 图11-5 杀毒软件框架设计结构图 在图11-5中&…

11.3  完整解决方案

      为了让系统具有更好的灵活性和可扩展性,客户端可以一致地对待文件和文件夹,Sunny公司开发人员使用组合模式来进行杀毒软件的框架设计,其基本结构如图11-5所示:

11-5  杀毒软件框架设计结构图

    在图11-5中, AbstractFile充当抽象构件类,Folder充当容器构件类,ImageFileTextFileVideoFile充当叶子构件类。完整代码如下所示:

import java.util.*;  //抽象文件类:抽象构件  
abstract class AbstractFile {  public abstract void add(AbstractFile file);  public abstract void remove(AbstractFile file);  public abstract AbstractFile getChild(int i);  public abstract void killVirus();  
}  //图像文件类:叶子构件  
class ImageFile extends AbstractFile {  private String name;  public ImageFile(String name) {  this.name = name;  }  public void add(AbstractFile file) {  System.out.println("对不起,不支持该方法!");  }  public void remove(AbstractFile file) {  System.out.println("对不起,不支持该方法!");  }  public AbstractFile getChild(int i) {  System.out.println("对不起,不支持该方法!");  return null;  }  public void killVirus() {  //模拟杀毒  System.out.println("----对图像文件'" + name + "'进行杀毒");  }  
}  //文本文件类:叶子构件  
class TextFile extends AbstractFile {  private String name;  public TextFile(String name) {  this.name = name;  }  public void add(AbstractFile file) {  System.out.println("对不起,不支持该方法!");  }  public void remove(AbstractFile file) {  System.out.println("对不起,不支持该方法!");  }  public AbstractFile getChild(int i) {  System.out.println("对不起,不支持该方法!");  return null;  }  public void killVirus() {  //模拟杀毒  System.out.println("----对文本文件'" + name + "'进行杀毒");  }  
}  //视频文件类:叶子构件  
class VideoFile extends AbstractFile {  private String name;  public VideoFile(String name) {  this.name = name;  }  public void add(AbstractFile file) {  System.out.println("对不起,不支持该方法!");  }  public void remove(AbstractFile file) {  System.out.println("对不起,不支持该方法!");  }  public AbstractFile getChild(int i) {  System.out.println("对不起,不支持该方法!");  return null;  }  public void killVirus() {  //模拟杀毒  System.out.println("----对视频文件'" + name + "'进行杀毒");  }  
}  //文件夹类:容器构件  
class Folder extends AbstractFile {  //定义集合fileList,用于存储AbstractFile类型的成员  private ArrayList<AbstractFile> fileList=new ArrayList<AbstractFile>();  private String name;  public Folder(String name) {  this.name = name;  }  public void add(AbstractFile file) {  fileList.add(file);    }  public void remove(AbstractFile file) {  fileList.remove(file);  }  public AbstractFile getChild(int i) {  return (AbstractFile)fileList.get(i);  }  public void killVirus() {  System.out.println("****对文件夹'" + name + "'进行杀毒");  //模拟杀毒  //递归调用成员构件的killVirus()方法  for(Object obj : fileList) {  ((AbstractFile)obj).killVirus();  }  }  
}  
编写如下客户端测试代码:
class Client {  public static void main(String args[]) {  //针对抽象构件编程  AbstractFile file1,file2,file3,file4,file5,folder1,folder2,folder3,folder4;  folder1 = new Folder("Sunny的资料");  folder2 = new Folder("图像文件");  folder3 = new Folder("文本文件");  folder4 = new Folder("视频文件");  file1 = new ImageFile("小龙女.jpg");  file2 = new ImageFile("张无忌.gif");  file3 = new TextFile("九阴真经.txt");  file4 = new TextFile("葵花宝典.doc");  file5 = new VideoFile("笑傲江湖.rmvb");  folder2.add(file1);  folder2.add(file2);  folder3.add(file3);  folder3.add(file4);  folder4.add(file5);  folder1.add(folder2);  folder1.add(folder3);  folder1.add(folder4);  //从“Sunny的资料”节点开始进行杀毒操作  folder1.killVirus();  }  
}  

编译并运行程序,输出结果如下:

****对文件夹'Sunny的资料'进行杀毒

****对文件夹'图像文件'进行杀毒

----对图像文件'小龙女.jpg'进行杀毒

----对图像文件'张无忌.gif'进行杀毒

****对文件夹'文本文件'进行杀毒

----对文本文件'九阴真经.txt'进行杀毒

----对文本文件'葵花宝典.doc'进行杀毒

****对文件夹'视频文件'进行杀毒

----对视频文件'笑傲江湖.rmvb'进行杀毒

      由于在本实例中使用了组合模式,在抽象构件类中声明了所有方法,包括用于管理和访问子构件的方法,如add()方法和remove()方法等,因此在ImageFile等叶子构件类中实现这些方法时必须进行相应的异常处理或错误提示。在容器构件类FolderkillVirus()方法中将递归调用其成员对象的killVirus()方法,从而实现对整个树形结构的遍历。

      如果需要更换操作节点,例如只需对文件夹“文本文件”进行杀毒,客户端代码只需修改一行即可,将代码:

folder1.killVirus();

       改为:

folder3.killVirus();

       输出结果如下:

****对文件夹'文本文件'进行杀毒

----对文本文件'九阴真经.txt'进行杀毒

----对文本文件'葵花宝典.doc'进行杀毒

       在具体实现时,我们可以创建图形化界面让用户选择所需操作的根节点,无须修改源代码,符合“开闭原则”,客户端无须关心节点的层次结构,可以对所选节点进行统一处理,提高系统的灵活性。

【作者:刘伟   http://blog.csdn.net/lovelion
http://www.jmfq.cn/news/5145535.html

相关文章:

  • 政务公开做的好的网站有哪些/深圳网站建设推广
  • 光明乳业网站是谁做的/seo网络推广师招聘
  • 上海专业网站建设公司电话/宁波seo服务快速推广
  • 做垂直网站/新浪微博指数查询
  • 中等职业学校网站建设模块/智能营销系统开发
  • 中国菲律宾商会/广州网站优化步骤
  • 贵州做网站公司/站长工具seo综合
  • 论坛推广网站/网络营销课程实训总结
  • 做网站的结论/真正永久免费网站建设
  • 做设计一般用的素材网站是什么/哪个好用?
  • 百合怎么doi怎么做网站/外贸网站建站平台
  • 做网站公司能赚钱吗/和生活app下载安装最新版
  • 成都网站建设app开发/百度图片搜索网页版
  • 怎么样制作一个公司网站/网络推广策划案
  • 杨凯做网站/友链互换平台推荐
  • 专做皮鞋销售网站/整合营销传播的方法包括
  • 做色情灰色网站怎么判刑/美国今天刚刚发生的新闻
  • 工控人如何做自己的网站/免费建立个人网站申请
  • 番禺制作网站设计/重庆网站页面优化
  • 可以自己做视频网站吗/百度推广一年大概多少钱
  • 珠海市企业网站制作服务机构/百度关键词搜索引擎
  • 单位网站建设的优势/百度推广要多少钱
  • 做网站发违规内容 网警抓不抓/b站视频推广网站400
  • 怎么做卖橘子的网站/天津百度搜索排名优化
  • 网站建设yu/有效获客的六大渠道
  • 7黄页网站建设/建站平台
  • 工信部网站实名认证怎么做/微信引流被加软件
  • 自己怎样制作网站/业务推广公司
  • 云服务器 能用来做网站吗/关键词制作软件
  • 有没有在家做的兼职网站/福州短视频seo推荐