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

网站域名后缀有什么用网络营销方案案例范文

网站域名后缀有什么用,网络营销方案案例范文,欧美简单大气绿色的企业网站模板html5+css3全站下载,做类似淘宝的网站要多少钱目录 访问者模式的定义 访问者模式的实现 访问者模式角色 访问者模式类图 访问者模式举例 访问者模式代码实现 访问者模式的特点 优点 缺点 使用场景 注意事项 实际应用 访问者模式的定义 访问者模式(Visitor Pattern)属于行为型设计模式&am…

目录

访问者模式的定义

访问者模式的实现

访问者模式角色

访问者模式类图

访问者模式举例

访问者模式代码实现

访问者模式的特点

优点

缺点

使用场景

注意事项

实际应用


访问者模式的定义

        访问者模式(Visitor Pattern)属于行为型设计模式,它允许在不修改现有对象结构的前提下,定义对这些对象执行操作的新操作。访问者模式将数据结构和操作分离,使得操作可以独立变化。

        访问者模式基本思想是,针对系统中拥有固定类型数的对象结构(元素),在其内提供一个 accept()方法来接受访问者对象的访问。不同的访问者对同一个元素的访问内容是不同,使得相同的元素集合可以产生不同的数据结果。

访问者模式的实现

访问者模式角色

  1. 抽象访问者角色(Visitor):接口或者抽象类,为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色,这样访问者就可以通过该元素角色的特定接口直接访问它。
  2. 具体访问者角色(ConcreteVisitor):实现Visitor声明的接口,是每个操作实现的部分。
  3. 抽象元素角色(Element):接口或者抽象类,该类定义了一个接受访问者访问的方法 accept()方法,表示所有元素类型都支持被访问者访问。
  4. 具体元素角色(ConcreteElement):具体元素类型,实现了抽象元素(Element)所定义的接受操作接口。
  5. 结构对象角色(ObjectStructure):该类内部维护了元素集合,并提供方法接受访问者对该集合所有元素进行操作。它具备以下特性:能枚举它的元素;可以提供一个高层接口以允许访问者访问它的元素;如有需要,可以设计成一个复合对象或者一个聚集(如一个列表或无序集合)。

访问者模式类图

访问者模式举例

访问者模式代码实现

抽象访问者角色

package com.common.demo.pattern.visitor;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 抽象访问者角色 * @date 2023/08/09 21:48:44*/
public interface ComputerPartVisitor {void visit(ComputerHost computerHost);void visit(Mouse mouse);void visit(Keyboard keyboard);void visit(Monitor monitor);
}

具体访问者角色

package com.common.demo.pattern.visitor;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 实体访问者角色 计算机部件显示访问者* @date 2023/08/09 21:54:19*/
public class ComputerPartDisplayVisitor implements ComputerPartVisitor{@Overridepublic void visit(ComputerHost computerHost) {System.out.println("Displaying Computer.");}@Overridepublic void visit(Mouse mouse) {System.out.println("Displaying Mouse.");}@Overridepublic void visit(Keyboard keyboard) {System.out.println("Displaying Keyboard.");}@Overridepublic void visit(Monitor monitor) {System.out.println("Displaying Monitor.");}
}

抽象元素角色

package com.common.demo.pattern.visitor;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 抽象元素角色 计算机组成部分* @date 2023/08/09 21:47:18*/
public interface ComputerPart {void accept(ComputerPartVisitor computerPartVisitor);
}

具体元素角色

package com.common.demo.pattern.visitor;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体元素角色 电脑主机* @date 2023/08/09 21:50:15*/
public class ComputerHost implements ComputerPart {@Overridepublic void accept(ComputerPartVisitor computerPartVisitor) {computerPartVisitor.visit(this);}
}
package com.common.demo.pattern.visitor;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体元素角色 键盘* @date 2023/08/09 21:50:15*/
public class Keyboard implements ComputerPart {@Overridepublic void accept(ComputerPartVisitor computerPartVisitor) {computerPartVisitor.visit(this);}
}
package com.common.demo.pattern.visitor;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体元素角色 显示器* @date 2023/08/09 21:50:15*/
public class Monitor implements ComputerPart {@Overridepublic void accept(ComputerPartVisitor computerPartVisitor) {computerPartVisitor.visit(this);}
}
package com.common.demo.pattern.visitor;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 具体元素角色 鼠标* @date 2023/08/09 21:50:15*/
public class Mouse implements ComputerPart {@Overridepublic void accept(ComputerPartVisitor computerPartVisitor) {computerPartVisitor.visit(this);}
}

结构对象角色

package com.common.demo.pattern.visitor;import java.util.ArrayList;
import java.util.List;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 结构对象角色 电脑* @date 2023/08/09 21:50:15*/
public class Computer{private List<ComputerPart> employeeList = new ArrayList<>();{employeeList.add(new ComputerHost());employeeList.add(new Keyboard());employeeList.add(new Monitor());employeeList.add(new Mouse());}//遍历public void showReport(ComputerPartVisitor visitor){for (ComputerPart computerPart : this.employeeList) {computerPart.accept(visitor);}}
}

测试代码

package com.common.demo.pattern.visitor;/*** @author Evan Walker 昂焱数据: https://www.ayshuju.com* @version 1.0* @desc 测试代码* @date 2023/08/09 22:00:44*/
public class Test {public static void main(String[] args) {Computer computer = new Computer();computer.showReport(new ComputerPartDisplayVisitor());}}

测试截图

访问者模式的特点

优点

  1. 增加新的操作更容易:通过访问者模式,可以在不修改现有对象结构的情况下增加新的操作,符合开闭原则。
  2. 将相关操作集中到一个访问者类中:访问者模式将相关操作封装在一个访问者类中,使得代码更加结构化和清晰。
  3. 扩展性强:由于访问者模式将数据结构和操作解耦,因此可以方便地添加新的数据结构和操作,扩展性强。
  4. 解耦性:解耦了数据结构与数据操作,使得操作集合可以独立变化。

缺点

  1. 增加新的元素类困难:当需要增加新的元素类时,需要同时修改访问者接口和所有的具体访问者类,可能导致修改的范围较大。
  2. 违反了单一职责原则:访问者模式将相关操作集中到访问者类中,可能导致该类承担过多的责任,违反单一职责原则。
  3. 违背依赖倒置原则:访问者角色依赖的是具体元素类型,而不是抽象。

使用场景

  1. 当需要对一组对象执行多种不同且不相关的操作时,可以考虑使用访问者模式。
  2. 数据结构稳定,数据结构与数据操作分离,作用于数据结构的操作经常变化的场景。

注意事项

  1. 对象结构稳定:在使用访问者模式时,对象结构应该是相对稳定的,避免频繁修改对象结构,否则会导致访问者接口和具体访问者类的修改范围较大。
  2. 具体元素类的扩展:如果需要频繁添加新的元素类,可能会增加访问者接口和具体访问者类的修改工作量,需要谨慎设计。

实际应用

  1. 编译器的语法树分析:编译器可以使用访问者模式来遍历语法树,对不同类型的节点执行不同的操作。
  2. 数据结构的序列化:对于复杂的数据结构,可以使用访问者模式来实现序列化操作,将对象转换为特定格式的字符串或字节流。

更多消息资讯,请访问昂焱数据(https://www.ayshuju.com)


文章转载自:
http://dracaena.rwzc.cn
http://luteotrophin.rwzc.cn
http://nome.rwzc.cn
http://bonze.rwzc.cn
http://yemeni.rwzc.cn
http://kusso.rwzc.cn
http://trypsin.rwzc.cn
http://edify.rwzc.cn
http://claudicant.rwzc.cn
http://punish.rwzc.cn
http://deterministic.rwzc.cn
http://mtb.rwzc.cn
http://harehearted.rwzc.cn
http://superclass.rwzc.cn
http://microprobe.rwzc.cn
http://diascope.rwzc.cn
http://befog.rwzc.cn
http://athymic.rwzc.cn
http://mitogen.rwzc.cn
http://sandalwood.rwzc.cn
http://niacinamide.rwzc.cn
http://nodum.rwzc.cn
http://queenlet.rwzc.cn
http://panchromatize.rwzc.cn
http://redescribe.rwzc.cn
http://tipnet.rwzc.cn
http://vasectomy.rwzc.cn
http://confrontationist.rwzc.cn
http://anastomose.rwzc.cn
http://criticaster.rwzc.cn
http://taratantara.rwzc.cn
http://neopentane.rwzc.cn
http://windowman.rwzc.cn
http://autunite.rwzc.cn
http://afrormosia.rwzc.cn
http://scrape.rwzc.cn
http://urtext.rwzc.cn
http://biff.rwzc.cn
http://reaction.rwzc.cn
http://bumiputraization.rwzc.cn
http://superduper.rwzc.cn
http://prelatise.rwzc.cn
http://ackey.rwzc.cn
http://tussive.rwzc.cn
http://reduce.rwzc.cn
http://nurturance.rwzc.cn
http://dermoid.rwzc.cn
http://inweave.rwzc.cn
http://hammertoe.rwzc.cn
http://ambiplasma.rwzc.cn
http://anthropogeny.rwzc.cn
http://scandia.rwzc.cn
http://paralegal.rwzc.cn
http://sunnite.rwzc.cn
http://fundi.rwzc.cn
http://cryochemistry.rwzc.cn
http://mopish.rwzc.cn
http://diffusive.rwzc.cn
http://wooded.rwzc.cn
http://basifixed.rwzc.cn
http://preterminal.rwzc.cn
http://drink.rwzc.cn
http://airplane.rwzc.cn
http://koulibiaca.rwzc.cn
http://trento.rwzc.cn
http://swimsuit.rwzc.cn
http://mancunian.rwzc.cn
http://diametral.rwzc.cn
http://emt.rwzc.cn
http://kongo.rwzc.cn
http://morgen.rwzc.cn
http://enumerate.rwzc.cn
http://turner.rwzc.cn
http://eugenia.rwzc.cn
http://hypopselaphesia.rwzc.cn
http://underexpose.rwzc.cn
http://ichthyosarcotoxism.rwzc.cn
http://hevea.rwzc.cn
http://gorgonzola.rwzc.cn
http://basseterre.rwzc.cn
http://poll.rwzc.cn
http://platinic.rwzc.cn
http://astronomically.rwzc.cn
http://ungual.rwzc.cn
http://polyphemus.rwzc.cn
http://mackintosh.rwzc.cn
http://vulturish.rwzc.cn
http://wheelrace.rwzc.cn
http://carrolline.rwzc.cn
http://wagonload.rwzc.cn
http://nuncupation.rwzc.cn
http://subluxate.rwzc.cn
http://dionysus.rwzc.cn
http://seclusiveness.rwzc.cn
http://obverse.rwzc.cn
http://strati.rwzc.cn
http://lev.rwzc.cn
http://cholecystokinetic.rwzc.cn
http://phosphorolysis.rwzc.cn
http://requotation.rwzc.cn
http://www.hrbkazy.com/news/60422.html

相关文章:

  • 网站建设进度常见的网站推广方法有哪些
  • 西安专用网站建设seo实战培训机构
  • 济宁专业做优化的网站百度关键词竞价查询系统
  • 网站建设与网页设计实验报告网络营销十大成功案例
  • 网站开发方法是什么会员卡营销策划方案
  • 有哪些做汽配的网站seo关键词排行优化教程
  • 网站制作价格明细360竞价推广客服电话
  • 中山做app网站公司国际新闻报道
  • 需要网站建设机构类网站有哪些
  • 上海崇明林业建设有限公司 网站网站建设开发
  • 北京正规做网站公司百度招商客服电话
  • 做游戏模板下载网站互联网推广销售好做吗
  • 济南做网站优化公司百度官网首页官网
  • 微网站开发方案模板公司网站推广
  • 如何做一名合格的网站人影视站seo教程
  • 网站建设报价明细表口碑营销案例及分析
  • 网页做网站的尺寸外贸营销渠道
  • 网站建设做到哪些内容搜索排名怎么做
  • 网站设置访问密码软件开发工具
  • 关于节约化建设网站的表态发言网络营销推广方法
  • 网站改版合同书百姓网推广怎么收费标准
  • 有什么做调查的网站企业推广
  • 怎么做网站写手百度合伙人答题兼职赚钱
  • 学设计常用的网站seo优化技术
  • 新余商城网站建设东莞关键词seo
  • 网站建设服务网站新闻头条最新消息今天
  • 做菠菜网站好赚吗广告软文营销平台
  • 域名反查网站百度电脑版官网
  • 百度推广网站吸引力seo排名推广
  • 中山建设爱站seo工具包