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

做空包网站合法吗人民日报今日头条新闻

做空包网站合法吗,人民日报今日头条新闻,10个自己收藏的网站,node网站开发需要学什么目录 前言 UML plantuml 类图 实战代码 SimpleFileVisitor FileVisitor 接口 删除指定文件夹 模板 IVisitor IVisitable Client 前言 一个类由成员变量和方法组成,成员变量即是类的数据结构,方法则是类的行为。 如果一个类的数据结构稳定&am…

目录

前言

UML

plantuml

类图

实战代码

SimpleFileVisitor

 FileVisitor 接口

 删除指定文件夹

模板

IVisitor

IVisitable

Client


前言

一个类由成员变量和方法组成,成员变量即是类的数据结构,方法则是类的行为。

如果一个类的数据结构稳定,但是行为多变,想要增加类的行为,就必须为类添加新的方法,违背了开闭原则。

使用访问者模式,则可以在不修改原有类的前提下定义新的操作,为类增加新的行为。

它能将类的数据结构和行为解耦,将多变的行为提取到访问者中,不同的访问者实现不同的行为。当类的行为变化时,只需要替换对应的访问者就能够修改类的行为了。

故访问者特别适用于数据结构相对稳定,而操作易于变化的场景。

UML

plantuml

@startuml
'https://plantuml.com/class-diagraminterface Visitable {+ accept(Visitor) : void
}class ConcreteVisitable {+ accept(Visitor) : void
}interface Visitor {+ visit(IVisitable) : void
}class ConcreteVisitorA {+ visit(IVisitable) : void
}class ConcreteVisitorB{+ visit(IVisitable) : void
}class Client {}Visitable <|.. ConcreteVisitable
Visitor <|.. ConcreteVisitorA
Visitor <|.. ConcreteVisitorBVisitable <..> VisitorClient ..> Visitable
Client ..> Visitor@enduml

类图

实战代码

SimpleFileVisitor

JDK 中 nio 的 Files 的 walkFileTree 方法使用了访问者模式来遍历文件树,使用时可以重写 SimpleFileVisitor 中的方法,对文件树下每个文件做相应操作。比如删除文件,复制文件,查找文件等等。

 FileVisitor 接口

可以看到 FileVisitor 接口定义了访问文件夹的前置/后置操作,访问文件操作,以及访问文件异常操作,SimpleFileVisitor 则是提供了空实现。

在实际使用时,创建自定义文件访问者类,实现 FileVisitor 接口或者直接继承 SimpleFileVisitor 类,然后实现接口中定义的方法。使用 walkFileTree 遍历文件树时传入不同的访问者则能够对应不同的文件操作逻辑,完美地将数据结构和操作行为分离

 删除指定文件夹

public class Client {public static void main(String[] args) throws IOException {Path directory = Paths.get("/data/file/abc");Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {@Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attributes) throws IOException {Files.delete(file); // this will work because it's always a Filereturn FileVisitResult.CONTINUE;}@Overridepublic FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {Files.delete(dir); //this will work because Files in the directory are already deletedreturn FileVisitResult.CONTINUE;}});}}

模板

IVisitor

public interface IVisitor {void visit(IVisitable visitable);
}public class Visitor1 implements IVisitor {public void visit(IVisitable visitable) {System.out.println("Visitor1");}
}public class Visitor2 implements IVisitor {public void visit(IVisitable visitable) {System.out.println("Visitor2");}
}

IVisitable

public interface IVisitable {void accept(IVisitor visitor);
}class Part implements IVisitable {String name;Integer value;public void accept(IVisitor visitor) {visitor.visit(this);}
}

Client

public class Client {public static void main(String[] args) throws IOException {IVisitable part = new Part();     IVisitor visitor1 = new Visitor1();part.accept(visitor1);IVisitor visitor2 = new Visitor2();part.accept(visitor2);}
}

http://www.tj-hxxt.cn/news/94525.html

相关文章:

  • 网站一个月成都百度快照优化排名
  • 唐山哪里建设的好重庆网站seo外包
  • wordpress 浏览量 点击汕头seo不错
  • 做营销网站企业近期热点新闻事件
  • 个人做淘宝客网站要备案临沂百度seo
  • 重庆企业网站建设哪家专业高端网站建设哪个好
  • wordpress模板不好用绍兴seo优化
  • 思茅区建设局网站上海网站建设seo
  • 公司企业邮箱号重庆seo按天收费
  • 广州开发区建设局网站黄埔北京百度网讯科技有限公司
  • 上海开发app公司谷歌seo价格
  • 图书馆 网站开发 总结江门网站建设模板
  • 制作公司内部募捐网站网络开发
  • 什么软件可以建网站百度收录链接提交入口
  • 大学两学一做网站苏州疫情最新情况
  • 上海地铁美女卖身求财称为支援商业网站建设百度seo关键词怎么做
  • 南宁电子商务网站建设流量平台排名
  • 楼网络规划设计方案关键词优化排名工具
  • 淄博seo网站推广宽带营销策略
  • 做网站好一点的公司百度指数大数据分享平台
  • 上海知名网站建设公司排名郑州怎么优化网站排名靠前
  • 重庆市住建厅网站刷关键词排名软件
  • 深圳专业网站建设公司多少钱百度云
  • 国外哪些网站可以兼职做任务google关键词分析
  • 网站注册页面设计网络免费推广平台
  • 叶榭网站建设竞价外包托管费用
  • 广州微网站建设竞价推广托管开户
  • 南昌做小程序公司长春网站建设方案优化
  • 滁州网站设计哪些平台可以打小广告
  • 加工厂网站建设网站seo网络优化