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

网站备案查询平台烟台网站制作维护

网站备案查询平台,烟台网站制作维护,砍柴网wordpress,福州科技网站建设怎么做主要用于在不改变对象结构的前提下,为对象结构中的元素添加新的操作。 访问者模式用于解决稳定数据结构和易变操作之间的耦合问题,设计的目的是不改变数据结构的定义,但允许增加新的访问者,来定义新的操作。 这里我们根据案例来具…

主要用于在不改变对象结构的前提下,为对象结构中的元素添加新的操作。

访问者模式用于解决稳定数据结构和易变操作之间的耦合问题,设计的目的是不改变数据结构的定义,但允许增加新的访问者,来定义新的操作。

这里我们根据案例来具体学习访问者模式。以下是一个代码示例及知识点详解:

首先,我们要定义一个访问者接口:

// 1. 定义元素接口(被访问对象)
interface DocumentElement {void accept(DocumentVisitor visitor); // 接受访问者的方法
}

接下来,我们需要创建具体的元素类:

// 2. 创建具体元素类
// 第一个元素类
class TextElement implements DocumentElement {private String content;public TextElement(String content) {this.content = content;}@Overridepublic void accept(DocumentVisitor visitor) {visitor.visit(this); // 双分派关键点}public String getContent() { return content; }
}
// 第二个元素类
class ImageElement implements DocumentElement {private String src;public ImageElement(String src) {this.src = src;}@Overridepublic void accept(DocumentVisitor visitor) {visitor.visit(this);}public String getSrc() { return src; }
}

接着,我们要定义访问者接口,即该访问者能够干的事情:

// 3. 定义访问者接口
interface DocumentVisitor {void visit(TextElement text);  // 重载方法处理不同元素void visit(ImageElement image);
}

然后,我们来实现具体的访问者:

// 4. 实现具体访问者
class HTMLExportVisitor implements DocumentVisitor {@Overridepublic void visit(TextElement text) {System.out.println("<p>" + text.getContent() + "</p>");}@Overridepublic void visit(ImageElement image) {System.out.println("<img src=\"" + image.getSrc() + "\"/>");}
}
class MarkdownExportVisitor implements DocumentVisitor {@Overridepublic void visit(TextElement text) {System.out.println(text.getContent() + "\n");}@Overridepublic void visit(ImageElement image) {System.out.println("![](" + image.getSrc() + ")");}
}

紧接着,我们要定义一个能够持有被访问元素的数据结构

// 5. 对象结构(管理元素集合)
class Document {private List<DocumentElement> elements = new ArrayList<>();public void addElement(DocumentElement e) {elements.add(e);}public void accept(DocumentVisitor visitor) {for (DocumentElement e : elements) {e.accept(visitor); // 触发访问操作}}
}

最后,测试下上述代码,看看客户端的执行效果:

// 客户端使用
public class VisitorDemo {public static void main(String[] args) {Document doc = new Document();doc.addElement(new TextElement("Hello Visitor Pattern"));doc.addElement(new ImageElement("diagram.jpg"));// 不同访问者实现不同处理doc.accept(new HTMLExportVisitor());doc.accept(new MarkdownExportVisitor());}
}

由此可见,访问者模式的核心思想是为了访问比较复杂的数据结构,不改变数据结构。而是把对数据的访问方式抽象出来,在访问数据的过程中以回调形式在访问者中处理操作逻辑。

如果要新增一组操作,只需要新增一个访问者。

总结

访问者模式是为了抽象出一组作用于复杂对象的操作,并且后续可以新增操作而不需要对现有的数据结构做出改动。

http://www.dtcms.com/a/567612.html

相关文章:

  • 网站建设与管理找工作网络管理系统官网
  • 无锡网站seo外包中国房地产十大排名
  • html5网站设计搜索引擎优化步骤
  • 做产品网站要备案吗动态效果酷炫的网站
  • 数码科技网站营销式网站制作
  • 深圳地产网站制作公司建网站推广效果怎么样
  • php做网站的分站深度网营销型网站建设
  • wordpress 设置缩略图佛山做网络优化的公司
  • 深圳网站建设制作设计平台wordpress设置vip
  • html静态页面怎么放在网站上个人适合做的网站
  • asp网站模板源码大连金州新区规划建设局网站
  • 多城市分站网站建设网站没有后台登陆文件夹
  • 门户网站有什么特点上海网站优化哪家好
  • 中国哪些网站做软装姐妹直播
  • 淘掌门官方网站一个产品的宣传和推广方案
  • 淮安网站设计公司crm管理系统有哪些
  • 购物网站开发教程中文版网站建设要注意哪些
  • 淘客怎样做自己的网站app拉新推广平台
  • 东莞外贸公司网站制作公众号网站怎么做
  • 网站改成html5网站网站开发的
  • 域名连接到网站吗wordpress添加账户编辑是什么意思
  • 漫画做视频在线观看网站网站中国风模板
  • 衡水做网站建设做医疗设备的网站
  • 电商网站开发商营销型网站建设系统
  • 中英文企业网站怎么做江西住房与城乡建设厅网站
  • 网站管理机制建设情况大气聚财的公司名字
  • 北京建设有限公司信源官方网站成都住房和城乡建设官网
  • 电子商务网站建设与管理的考试ps制作网页步骤
  • 淘宝便宜的团购网站建设优秀简历模板
  • 网站开发图片加载慢编程网址