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

住房城乡建设局网站首页怎么在百度做免费推广

住房城乡建设局网站首页,怎么在百度做免费推广,知名小蚁人网站建设,如何进行网站营销什么是访问者模式 访问者模式提供了一个作用于某对象结构中的各元素的操作表示,他使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。     访问者模式主要包含以下几个角色:         Vistor(抽象访问者):为对象结…

什么是访问者模式

    访问者模式提供了一个作用于某对象结构中的各元素的操作表示,他使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
    访问者模式主要包含以下几个角色:
        Vistor(抽象访问者):为对象结构中每一个具体元素类声明一个访问操作,从这个操作的名称或参数类型可以清楚的知道需要访问的具体元素类型,具体访问者需要实现这些操作方法,定义对这些元素的访问操作。
        ConcreteVistor(具体访问者):实现了每一个由抽象访问者声明的操作,每一个操作用于访问对象结构中一种类型的元素。
        Element(抽象元素):一般是抽象类或接口,定义了一个由抽象访问者作为参数的方法。
        ConcreteElement(具体元素):实现了抽象元素中的方法,在该方法中调用访问者的访问方法以完成一个元素的操作。
        ObjectStructure(对象结构):是一个元素的集合,用于存放元素对象,并且提供了遍历集合的方法。

访问者模式的优缺点

优点

  1. 增加新的访问者很方便,无需修改源代码,符合开闭原则。
  2. 将有关元素对象的访问行为集中到一个访问者中,有利于对象结构中元素对象的复用。
  3. 可以在不修改现有元素层次结构的前提下,定义作用于该层次结构的操作。

缺点

  1. 增加新的元素类很困难,每增加一个元素类都要在抽象访问者角色中增加一个新的抽象操作,并在具体访问者类中增加相应的具体操作,违背了开闭原则。
  2. 破坏了封装,访问者对象需要访问并调用每一个元素对象的操作,这意味着元素对象有时候必须暴露一些自己的内部操作和状态。

访问者模式的应用场景

  1. 一个对象结构包含多个类型的对象,希望对这些对象的具体类型做一些操作。
  2. 需要对一个对象结构中的对象进行很多不同的并且不相关的操作。
  3. 对象结构中对象对应的类很少改变,经常需要在对象结构中定义新的操作。

访问者模式的案例

// 抽象访问者
public abstract class Action {/*** 得到男性 的测评** @param man man*/public abstract void getManResult(Man man);/*** 得到女的 测评** @param woman woman*/public abstract void getWomanResult(Woman woman);
}// 具体访问者
public class Success extends Action {@Overridepublic void getManResult(Man man) {System.out.println(" 男人给的评价该歌手很成功 !");}@Overridepublic void getWomanResult(Woman woman) {System.out.println(" 女人给的评价该歌手很成功 !");}}public class Wait extends Action {@Overridepublic void getManResult(Man man) {System.out.println(" 男人给的评价是该歌手待定 ..");}@Overridepublic void getWomanResult(Woman woman) {System.out.println(" 女人给的评价是该歌手待定 ..");}}public class Fail extends Action {@Overridepublic void getManResult(Man man) {System.out.println(" 男人给的评价该歌手失败 !");}@Overridepublic void getWomanResult(Woman woman) {System.out.println(" 女人给的评价该歌手失败 !");}}// 抽象元素
public abstract class Person {public abstract void accept(Action action);}// 具体元素
public class Man extends Person {@Overridepublic void accept(Action action) {action.getManResult(this);}}public class Woman extends Person {@Overridepublic void accept(Action action) {action.getWomanResult(this);}}// 对象结构
public class ObjectStructure {private final List<Person> persons = new LinkedList<>();public void attach(Person p) {persons.add(p);}public void detach(Person p) {persons.remove(p);}public void display(Action action) {for (Person p : persons) {p.accept(action);}}
}public static void main(String[] args) {//创建ObjectStructureObjectStructure objectStructure = new ObjectStructure();objectStructure.attach(new Man());objectStructure.attach(new Woman());//成功Success success = new Success();objectStructure.display(success);System.out.println("===============");Fail fail = new Fail();objectStructure.display(fail);System.out.println("=======给的是待定的测评========");Wait wait = new Wait();objectStructure.display(wait);
}

在这里插入图片描述


http://www.yayakq.cn/news/324615/

相关文章:

  • 网站app 开发西安论坛
  • qq排名优化网站免费的网络推广有哪些
  • 云主机网站的空间在哪易语言网站怎么做
  • 招聘网站建设及推广青柠视频免费观看高清视频
  • 专业电商网站建设多少钱wordpress 409错误
  • 岳阳网站界面设计河北中尊建设工程有限公司官方网站
  • 锦州网站建设锦州全国企业信息查询系统官网
  • 网站开发的发展正确的建议是( )
  • 网站建设300元石狮交通和建设局网站
  • 网站专属定制高端网站建设ps做网站首页规范尺寸
  • 山西手动网站建设推广模板网站与定制网站区别
  • 大人小孩做网站东莞做网站 动点官网
  • 百度网站建设在哪wordpress格式
  • 海南网站建设费用深圳网页制作推广排名
  • 南皮网站建设公司上海网站建设市场分析
  • 单位网站建设公司聊天网站制作教程
  • 企业网站html百度云wordpress模板页面怎么添加图片
  • 企业网站做口碑营销永嘉做网站
  • 深圳seo网站设计网站建设 创意视频
  • 网站建设linux百度app制作网站
  • 网站头部导航wordpress商城建站教程
  • 网站推广方法包括哪些aspcms手机网站怎么做
  • 支持手机网站的空间导航网站建站系统
  • 网站编排页面html网页制作下载
  • 北京网站优化技术网站报价文档
  • 广东网站建设电话咨询上海搬家公司哪家口碑最好
  • 深圳营销型网站设计网页升级紧急通知 2022狼
  • 数据库查询网站模板在线转格式网站怎么做
  • 石家庄网站设计公司开发公司终止函内容
  • 模块化建站工具网站开发与软件开发的区别