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

温州外贸网站建设资阳公司短视频优化服务

温州外贸网站建设,资阳公司短视频优化服务,移动网站打不开,郑州展厅设计公司什么是访问者模式 访问者模式提供了一个作用于某对象结构中的各元素的操作表示#xff0c;他使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。     访问者模式主要包含以下几个角色#xff1a;         Vistor(抽象访问者)#xff1a;为对象结…什么是访问者模式 访问者模式提供了一个作用于某对象结构中的各元素的操作表示他使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。     访问者模式主要包含以下几个角色         Vistor(抽象访问者)为对象结构中每一个具体元素类声明一个访问操作从这个操作的名称或参数类型可以清楚的知道需要访问的具体元素类型具体访问者需要实现这些操作方法定义对这些元素的访问操作。         ConcreteVistor(具体访问者)实现了每一个由抽象访问者声明的操作每一个操作用于访问对象结构中一种类型的元素。         Element(抽象元素)一般是抽象类或接口定义了一个由抽象访问者作为参数的方法。         ConcreteElement(具体元素)实现了抽象元素中的方法在该方法中调用访问者的访问方法以完成一个元素的操作。         ObjectStructure(对象结构)是一个元素的集合用于存放元素对象并且提供了遍历集合的方法。 访问者模式的优缺点 优点 增加新的访问者很方便无需修改源代码符合开闭原则。将有关元素对象的访问行为集中到一个访问者中有利于对象结构中元素对象的复用。可以在不修改现有元素层次结构的前提下定义作用于该层次结构的操作。 缺点 增加新的元素类很困难每增加一个元素类都要在抽象访问者角色中增加一个新的抽象操作并在具体访问者类中增加相应的具体操作违背了开闭原则。破坏了封装访问者对象需要访问并调用每一个元素对象的操作这意味着元素对象有时候必须暴露一些自己的内部操作和状态。 访问者模式的应用场景 一个对象结构包含多个类型的对象希望对这些对象的具体类型做一些操作。需要对一个对象结构中的对象进行很多不同的并且不相关的操作。对象结构中对象对应的类很少改变经常需要在对象结构中定义新的操作。 访问者模式的案例 // 抽象访问者 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 ListPerson 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.hkea.cn/news/14339544/

相关文章:

  • 江淮网站开发中信建设有限责任公司重庆沿江高速公路总承包部
  • 中英文网站多少钱策略网页游戏大全
  • 网站做推广需要营业执照一个服务器上建立多个网站吗
  • cnzz站长统计工具网站用什么构建
  • 宠物网站开发文档加氢站个公司好
  • 原创文章对网站的好处fireworks个人网站模板
  • 做个外贸网站泰国一家做男模的网站
  • 网站宣传费用手机端开发
  • 棕色网站设计深圳市住房建设局网站
  • 金鹏建设集团网站今天特大军事新闻
  • 中小企业的网站建设论文徐州关键词优化如何
  • 做流量的网站应该注意什么网站建设制作模板
  • 上海网站建设报价方案网站只收录主页
  • 荆州大气网站建设价格怎么做免费推广网站
  • 最新备案的网站餐饮业网站建设
  • 网站建设方案及报价单最新seo课程
  • 建筑工程网站定制帮建网站
  • 搜狗站长平台验证不了贵阳企业网站建设制作
  • 手机友好型网站聊天软件开发教程
  • 江阴响应式网站开发wordpress 描述
  • 电视剧男女直接做视频网站湘潭今天最新通知
  • 入驻京东需要自己做网站吗tp5企业网站开发
  • 腾讯云做淘客网站校园网站设计描述
  • 做微信网站的公司网络平台搭建是什么意思
  • 电商类网站建设价格本地网站开发公司
  • 如何建微信商城网站个人怎么建设网站
  • 创建网站的准备石家庄网站建设制作
  • 怎么做那些盗号网站网站集约化建设实施方案
  • 宠物电子商务网站建设方案中国建筑最新消息
  • 网站建设基于网站开发常用问题