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

静态企业网站模板东莞seo网站管理

静态企业网站模板,东莞seo网站管理,wordpress取消日志保存,微信公众号运营方案目录 0、定义 1、访问者模式的五种角色 2、访问者模式的UML类图 3、示例代码 0、定义 表示一个作用于某对象结构中的各个元素的操作。它可以在不改变各个元素的类的前提下,定义作用于这些元素的新操作。 1、访问者模式的五种角色 抽象元素(Element…

目录

0、定义

1、访问者模式的五种角色

2、访问者模式的UML类图

3、示例代码


0、定义

        表示一个作用于某对象结构中的各个元素的操作。它可以在不改变各个元素的类的前提下,定义作用于这些元素的新操作。

1、访问者模式的五种角色

  • 抽象元素(Element):一个接口,该接口定义了接收访问者的accept操作。
  • 具体元素(Concrete Element):Element的实现类。
  • 对象结构(Object Structure):一个集合,用于存放Element对象,提供遍历它自己的方法。
  • 抽象访问者(Visitor):一个接口,该接口定义操作对象(ConcreteElement的实例)的方法。
  • 具体访问者(Concrete Visitor):实现Visitor接口的类。

2、访问者模式的UML类图

3、示例代码

抽象元素:

package xyz.jangle.design.visitor;public interface Element {public void accept(Visitor v);
}

具体元素A和B:

package xyz.jangle.design.visitor;public class ConcreteElementA implements Element {@Overridepublic void accept(Visitor v) {v.visit(this);}}
package xyz.jangle.design.visitor;public class ConcreteElementB implements Element {@Overridepublic void accept(Visitor v) {v.visit(this);}}

抽象访问者:

package xyz.jangle.design.visitor;public interface Visitor {public void visit(ConcreteElementA a);public void visit(ConcreteElementB b);
}

具体访问者1 和2 :

package xyz.jangle.design.visitor;public class ConcreteElementA implements Element {@Overridepublic void accept(Visitor v) {v.visit(this);}}
package xyz.jangle.design.visitor;public class ConcreteElementB implements Element {@Overridepublic void accept(Visitor v) {v.visit(this);}}

客户端(使用):

package xyz.jangle.design.visitor;import java.util.ArrayList;public class AppMain24 {public static void main(String[] args) {ArrayList<Element> list = new ArrayList<Element>();list.add(new ConcreteElementA());list.add(new ConcreteElementA());list.add(new ConcreteElementA());list.add(new ConcreteElementB());list.add(new ConcreteElementB());ConcreteVisitor1 visitor1 = new ConcreteVisitor1();for(Element e : list){e.accept(visitor1);}ConcreteVisitor2 visitor2 = new ConcreteVisitor2();for(Element e:list) {e.accept(visitor2);}}}

输出结果:

这是访问者1的方法,可以访问ConcreteElementA的属性
这是访问者1的方法,可以访问ConcreteElementA的属性
这是访问者1的方法,可以访问ConcreteElementA的属性
这是访问者1的方法,可以访问ConcreteElementB的属性
这是访问者1的方法,可以访问ConcreteElementB的属性
这是访问者2的方法,可以访问ConcreteElementA的属性
这是访问者2的方法,可以访问ConcreteElementA的属性
这是访问者2的方法,可以访问ConcreteElementA的属性
这是访问者2的方法,可以访问ConcreteElementB的属性
这是访问者2的方法,可以访问ConcreteElementB的属性

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

相关文章:

  • 营销型网站制作平台搜索营销
  • 西安网站的建设抖音排名优化
  • 网站毕业设计开题报告seo精准培训课程
  • 做软件的网站建设鲜花网络营销推广方案
  • 学校网站建设报价是多少钱北京seo培训
  • 哪家公司做移动网站网站建设的整体流程有哪些
  • 广州互联网阿里巴巴怎么优化关键词排名
  • 陈木胜导演西安网站seo服务
  • ip代理提取网站源码南和网站seo
  • 网站让百度收录应该怎么做搜索引擎优化叫什么
  • 如何免费建造网站合肥百度推广公司哪家好
  • 做网站汉口seo研究协会网
  • 个人建设网站论文百度明星搜索量排行榜
  • 网站套餐报价网站seo运营培训机构
  • 网站架构包括哪些抖音搜索引擎推广
  • 做外贸 英文网站北京seo百科
  • wordpress 手册插件济南seo培训
  • 在线短视频网站开发费用seo优化推广多少钱
  • 老年大学网站开发51link友链
  • 帮诈骗公司做网站哈尔滨优化网站公司
  • app下载平台哪个好贵州seo培训
  • erlang做网站优势外贸网站都有哪些
  • 大港做网站开源crm系统
  • 百度打网站名称就显示 如何做seo智能优化软件
  • 网上做任务的网站灰色行业推广平台网站
  • 网站做排名靠前免费seo工具大全
  • 湛江建站价格网站发布
  • 网站中文域名好不好刚刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 枣庄网站建设网络营销服务
  • 软件公司招聘最新信息优化设计答案六年级上册