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

凯里做网站个人怎么做免费百度推广

凯里做网站,个人怎么做免费百度推广,武汉互联网公司有哪些,网站优化自己可以做吗访问者模式(Visitor Pattern) 定义 访问者模式(Visitor Pattern) 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 该模式的主要思想是将作用于某种数据结构中的各…

访问者模式(Visitor Pattern)

定义

访问者模式(Visitor Pattern)
表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。

该模式的主要思想是将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使得可以在不改变数据结构的前提下添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。

属于行为型模式。


适用场景

  1. 数据结构稳定,作用于数据结构的操作经常发生变化的场景;
  2. 需要数据结构与数据操作分离的场景;
  3. 需要对不同数据类型(元素)进行操作,而不使用分支判断具体类型的场景。

标准示例

  • Visitor(抽象访问者):定义一个访问具体元素的接口,该接口内部包含了对所有具体元素的访问方法。
  • ConcreteVisitor(具体访问者):实现Visitor接口,针对特定类型的元素执行具体访问操作。
  • Element(抽象元素):定义一个接受访问操作的接口,通常包含一个accept()方法,该方法接收一个访问者对象作为参数。
  • ConcreteElement(具体元素):实现了Element接口,存储了实际的数据,并提供接受访问者访问的方法实现。
  • ObjectStructure(对象结构):管理元素的集合,通常包含add、remove等方法以及一个遍历所有元素的accept()方法,该方法接收一个访问者对象作为参数,并遍历所有元素,让每个元素接受访问者的访问。
    在这里插入图片描述
    代码:
public interface IVisitor {void visit(ConcreteElementA element);void visit(ConcreteElementB element);
}
public class ConcreteVisitorA implements IVisitor {public void visit(ConcreteElementA element) {String result = element.operationA();System.out.println( element.getClass().getSimpleName() + " : " + result);}public void visit(ConcreteElementB element) {int result = element.operationB();System.out.println( element.getClass().getSimpleName() + ": " + result);}
}
public class ConcreteVisitorB implements IVisitor {public void visit(ConcreteElementA element) {String result = element.operationA();System.out.println(element.getClass().getSimpleName() + ": " + result);}public void visit(ConcreteElementB element) {int result = element.operationB();System.out.println( element.getClass().getSimpleName() + ": " + result);}
}
public interface IElement {void accept(IVisitor visitor);
}
public class ConcreteElementA implements IElement {public void accept(IVisitor visitor) {visitor.visit(this);}public String operationA() {return this.getClass().getSimpleName();}}
public class ConcreteElementB implements IElement {public void accept(IVisitor visitor) {visitor.visit(this);}public int operationB() {return new Random().nextInt(10);}
}
public class ObjectStructure {private List<IElement> list = new ArrayList<IElement>();{this.list.add(new ConcreteElementA());this.list.add(new ConcreteElementB());}public void accept(IVisitor visitor) {for (IElement element : this.list) {element.accept(visitor);}}
}
public class Test {public static void main(String[] args) {ObjectStructure objectStructure = new ObjectStructure();	IVisitor visitorA = new ConcreteVisitorA();objectStructure.accept(visitorA);System.out.println("***************************************");IVisitor visitorB = new ConcreteVisitorB();objectStructure.accept(visitorB);}}

输出结果:

ConcreteElementA: ConcreteElementA
ConcreteElementB: 5
***************************************
ConcreteElementA: ConcreteElementA
ConcreteElementB: 4

以上就是访问者模式全部内容,感谢阅读!

http://www.ds6.com.cn/news/54719.html

相关文章:

  • 石家庄网站外包杭州seo运营
  • 武汉网站建设方案怎么做百度推广平台
  • 全国b2c网站建设电商网络推广
  • 如何评价一个网站设计的好坏百度一下百度首页登录
  • 如何向百度提交站点收录信息长沙建站优化
  • 做网站用的主机百度购物平台客服电话
  • 望都网站建设郑州全域静态管理
  • 上海阿里巴巴做网站百度搜索引擎推广步骤
  • 依宝诺手表官方网站百度客服在线咨询
  • crm系统 网站建设seo系统培训哪家好
  • 做网站建设分哪些类型抖音seo优化排名
  • 公司网站用什么程序湖北短视频搜索seo
  • 凡科建站网址2023年第三波新冠9月
  • 网站建设存在的问题及解决办法怎么开发网站
  • IP怎么屏蔽网站域名网络优化大师下载
  • 优秀网站设计作品分析广州官方新闻
  • 网站必须做ipv6视频号直播推广二维码
  • php做网站优势友链通
  • qq电脑版网页登录seo研究协会网是干什么的
  • 网站开发制作案例免费放单平台无需垫付
  • 武汉黄页网资源优化排名网站
  • 潍坊市建设一体化平台网站近三天发生的大事
  • 服装网站建设论文范文免费推广引流怎么做
  • 做业帮网站百度免费推广方法
  • wordpress文章转bbpress商丘seo教程
  • 网站做超链接薪资多少一个月建网站
  • 台州网站建设公司.怎么优化网站性能
  • 天津公司网站2021年经典营销案例
  • pc网站做app京东口碑最好的it培训机构
  • 山东省住房城乡建设部网站首页比较好的网络优化公司