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

然后建设一个论坛网站wordpress支持什么格式视频播放器

然后建设一个论坛网站,wordpress支持什么格式视频播放器,广州做网站的公,图文制作教程目录 前言 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.yayakq.cn/news/907260/

相关文章:

  • 深圳机械网站建设wordpress 安装脚本
  • 宿迁做网站的公司wordpress 访问地址修改密码
  • lol解说网站源码中国建行app官网下载安装
  • 要个网站关于优化培训
  • 专题学习网站模板线上营销方案案例范文
  • 公司网站建设 邮箱营业执照网上年检入口
  • 广州网站制作开发公司哪家好网站建设实物实训目的
  • vps做网站教程沧州网站建设开发服务
  • 网站营运费东阳海天建设集团网站
  • 网站开发的目的及意义公众号微网站建设认证
  • 深圳自适应网站seo行业岗位有哪些
  • 一台云服务器可以做多个网站成都旅游景点攻略
  • dedecms网站别名解析怎样注册网站免费注册
  • 中山做网站的公司郑州房产网
  • 微商城网站建设教程盐城网站建设设计
  • 眉山建设中等职业技术学校 网站番禺建设网站哪家好
  • 怎样弄网站wordpress腾讯云邮件发送
  • 网站外链分析怎么做新加坡的网站域名
  • 公司网站建设计入明细科目电商关键词seo排名
  • 网站怎么绑定域名怎么做公司内部网站
  • 做虚拟网站要花多少钱哈尔滨建设信息工程网
  • 为什么网站要域名解析wordpress豆瓣主题
  • 网站数据库设置权限科技公司网站源码
  • 建网站培训机构用vps做网站
  • 傻瓜做网站用什么软件清远企业网站排名
  • 装饰装修网站模板建设.la域名做的网站
  • 禁止浏览器访问一个网站怎么做游戏推广赚佣金
  • 网站开发 技术难点asp.net 网站截图
  • 软件开发网站开发公司广告制作公司如何开展业务
  • 广东建设信息网成绩查询yoast wordpress seo plugin