当前位置: 首页 > 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.ds6.com.cn/news/63310.html

相关文章:

  • 制作网站首页教案网站优化排名查询
  • 做外汇最好的财经网站深圳网站营销seo电话
  • 微信公众号设计与布局蜘蛛seo超级外链工具
  • 新手如何做网站搜索推广平台
  • 泰安市人才服务平台成都纯手工seo
  • 网站验证图标百度网站免费优化软件下载
  • 如何做网站平台关注自己怎么免费做网站
  • 网站如何做流动字幕百度app营销软件
  • wordpress页面woo分类漯河seo公司
  • 社交网站开发注意事项网络推广赚钱
  • 做tb任务赚钱的网站天津百度推广开户
  • 固原市住房和城乡建设厅网站免费游戏推广平台
  • 用dw做的企业网站百度关键词推广条件
  • 做兼职那个网站比较靠谱站长工具网站
  • 四合一网站建设sem是什么意思职业
  • jsp网站开发工具及语言建设网站制作公司
  • 做汽配网站需要多少钱提交百度一下
  • 微网站开发提供的服务器百度seo软件曝光行者seo
  • wordpress电子商务视频教程石家庄seo优化公司
  • 网站的建设步骤包括马鞍山seo
  • 酒店电子商务网站策划书北京关键词优化服务
  • 小米手机做网站服务器吗温岭网络推广
  • 中国最大的门户网站是产品推广计划方案
  • 凡科建站案例搜索关键词推荐
  • 自己建的网站地址公司网站建设要多少钱
  • 政府网站建设与管理一份完整的活动策划方案
  • 猪八戒网怎么做网站百度推广关键词匹配模式
  • 中南建设的网站推广网站源码
  • 手机下载微信电脑版官方免费下载青岛seo网站关键词优化
  • 合肥专业做网站seo网络推广排名