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

门户网站模版建设网站的网络公司

门户网站模版,建设网站的网络公司,网站建设公司平台,中小企业网站建设公司目录 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.tj-hxxt.cn/news/62373.html

相关文章:

  • 如果做网站运营域名备案官网
  • 网站建设负责那内容上传吗报个计算机培训班多少钱
  • 局域网动态网站建设河南网站建设报价
  • wordpress 非插件七牛cdn全站加速找客户资源的软件
  • flash网站的制作推广平台哪个效果最好
  • 如何做淘宝cms导购网站网络营销的招聘信息
  • 织梦做的网站怎么上传视频株洲今日头条新闻
  • 那里可以做网站沈阳百度推广优化
  • asp网站怎么安装可以直接打开网站的网页
  • 黑客怎么入侵网站韶山百度seo
  • 南阳网站建设新闻企业宣传推广怎么做
  • 做网站优化的公司的宣传海报百度竞价推广代理商
  • 布吉做棋牌网站建设哪家便宜湖北网站设计
  • 六安木兰巷上海比较大的优化公司
  • 虚拟主机如何做网站苏州百度推广开户
  • 遵义网站建设中心seo网站推广助理招聘
  • 深圳外贸网站建设公司企业网站优化
  • 成都企业建设网站电话今日刚刚发生的新闻
  • 局域网怎么搭建长沙seo网络推广
  • 织梦做的网站后台登录如何优化搜索关键词
  • 政府网站开发建设方案百度 营销推广怎么做
  • 团购网站 设计方案网站快速搜索
  • 通辽网站制作公司搜狗网站
  • 网站排名优化怎么做云南seo简单整站优化
  • 可以上传高清图片的网站并做外链智慧软文发布系统
  • 做国外搞笑网站windows优化大师要钱
  • 温州 网站长春关键词优化平台
  • 杭州网站建设哪家好想学手艺在哪里可以培训
  • 做司法考试题目的网站国外比较开放的社交软件
  • 在哪些网站可以发布推广信息互联网广告销售是做什么的