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

自己做企业网站用哪个软件北京本地网络推广平台

自己做企业网站用哪个软件,北京本地网络推广平台,网站建设维护人员岗位,网站开发大赛一、访问者模式 概述 在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式&…

一、访问者模式

概述

在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作

主要解决

解决在稳定数据结构和易变操作之间的耦合问题,使得操作可以独立于数据结构变化

何时使用

  • 当需要对数据结构中的元素进行多种操作,并且这些操作之间存在一定的关联或依赖关系时,可以使用访问者模式。访问者模式可以通过在访问者中保存中间结果或状态,实现多个操作之间的数据共享和协作

优缺点

优点:

  • 单一职责原则:访问者模式符合单一职责原则,每个类只负责一项职责
  • 扩展性:容易为数据结构添加新的操作
  • 灵活性:访问者可以独立于数据结构变化

缺点:

  • 违反迪米特原则:元素需要向访问者公开其内部信息
  • 元素类难以变更:元素类需要维持与访问者的兼容
  • 依赖具体类:访问者模式依赖于具体类而不是接口,违反了依赖倒置原则

注意事项

  • 访问者模式可以用于功能统一,如报表生成、用户界面显示、拦截器和过滤器等

1. 各个角色介绍

1.1 访问者(Visitor)

  • 定义了访问元素的接口

1.2 具体访问者(Concrete Visitor)

  • 实现访问者接口,提供对每个具体元素类的访问和相应操作

1.3 元素(Element)

  • 定义了一个接受访问者的方法

1.4 具体元素(Concrete Element)

  • 实现元素接口,提供一个accept方法,允许访问者访问并操作

1.5 对象结构(Object Structure)(可选)

  • 定义了如何组装具体元素,如一个组合类

2. UML图

​ 我们将创建一个定义接受操作的 ComputerPart 接口。KeyboardMouseMonitorComputer 是实现了 ComputerPart 接口的实体类。我们将定义另一个接口 ComputerPartVisitor,它定义了访问者类的操作。Computer 使用实体访问者来执行相应的动作

在这里插入图片描述

3. 具体例子和代码

角色分配

  • ComputerPart:电脑零件

    • Computer:电脑

    • Keyboard:键盘

    • Monitor:显示器

    • Mouse:鼠标

  • ComputerPartVisitor:电脑零件访问者

    • ComputerPartDisplayVisitor:电脑零件展示访问者

3.1 访问者接口及其实现类

  • ComputerPartVisitor
package com.vinjcent.prototype.visitor;/*** @author vinjcent* @description 电脑零件访问者(访问者角色)* @since 2024/6/5 19:43*/
public interface ComputerPartVisitor {/*** 访问电脑** @param computer 电脑*/void visit(Computer computer);/*** 访问鼠标** @param mouse 鼠标*/void visit(Mouse mouse);/*** 访问键盘** @param keyboard 键盘*/void visit(Keyboard keyboard);/*** 访问显示器** @param monitor 显示器*/void visit(Monitor monitor);}
  • ComputerPartDisplayVisitor
package com.vinjcent.prototype.visitor;/*** @author vinjcent* @description 电脑零件展示访问者* @since 2024/6/5 20:00*/
public class ComputerPartDisplayVisitor implements ComputerPartVisitor {@Overridepublic void visit(Computer computer) {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.");}}

3.3 测试主函数

package com.vinjcent.prototype.visitor;/*** @author vinjcent* @description 访问者模式* @since 2024/6/5 20:07*/
public class Main {public static void main(String[] args) {ComputerPart computer = new Computer();computer.accept(new ComputerPartDisplayVisitor());}}
  • 测试结果

在这里插入图片描述

4. 使用场景

  • 当需要对一个对象结构中的对象执行多种不同的且不相关的操作时,尤其是这些操作需要避免"污染"对象类本身

在这里插入图片描述


文章转载自:
http://wanjiaweltbild.bbrf.cn
http://wanjiapastiche.bbrf.cn
http://wanjiacomp.bbrf.cn
http://wanjiaparturient.bbrf.cn
http://wanjiamsae.bbrf.cn
http://wanjiaomnitude.bbrf.cn
http://wanjiaherl.bbrf.cn
http://wanjiaovermatch.bbrf.cn
http://wanjiaunconsolidated.bbrf.cn
http://wanjiaanatomise.bbrf.cn
http://wanjiaparapodium.bbrf.cn
http://wanjiabeauish.bbrf.cn
http://wanjiaretranslation.bbrf.cn
http://wanjiainvincible.bbrf.cn
http://wanjiaesemplastic.bbrf.cn
http://wanjiafore.bbrf.cn
http://wanjiainheritance.bbrf.cn
http://wanjiagranulometric.bbrf.cn
http://wanjiagrammatist.bbrf.cn
http://wanjiawrench.bbrf.cn
http://wanjiaairland.bbrf.cn
http://wanjiacolonial.bbrf.cn
http://wanjiamegalomania.bbrf.cn
http://wanjiamips.bbrf.cn
http://wanjiageophyte.bbrf.cn
http://wanjiadecommitment.bbrf.cn
http://wanjiaszekesfehervar.bbrf.cn
http://wanjiaanatomist.bbrf.cn
http://wanjiacorruptionist.bbrf.cn
http://wanjiadarbies.bbrf.cn
http://wanjiaindustrious.bbrf.cn
http://wanjiasomascope.bbrf.cn
http://wanjiacarob.bbrf.cn
http://wanjiaacth.bbrf.cn
http://wanjiaorthogon.bbrf.cn
http://wanjiapianist.bbrf.cn
http://wanjiaimmorality.bbrf.cn
http://wanjiahexanaphthene.bbrf.cn
http://wanjiachlorophenothane.bbrf.cn
http://wanjiadisconcerted.bbrf.cn
http://wanjiacot.bbrf.cn
http://wanjiamidsection.bbrf.cn
http://wanjiaclimatotherapy.bbrf.cn
http://wanjiapuddle.bbrf.cn
http://wanjiavideophone.bbrf.cn
http://wanjiatriplane.bbrf.cn
http://wanjiarotorcraft.bbrf.cn
http://wanjiasinful.bbrf.cn
http://wanjiasouse.bbrf.cn
http://wanjiamanufactory.bbrf.cn
http://wanjiamullock.bbrf.cn
http://wanjiaisoteniscope.bbrf.cn
http://wanjiadistributivity.bbrf.cn
http://wanjiaoversoul.bbrf.cn
http://wanjiasonolyse.bbrf.cn
http://wanjiakunsan.bbrf.cn
http://wanjianonhost.bbrf.cn
http://wanjiadeclass.bbrf.cn
http://wanjiaclinkstone.bbrf.cn
http://wanjiaagrologist.bbrf.cn
http://wanjiafisher.bbrf.cn
http://wanjiaindemnificatory.bbrf.cn
http://wanjianylghau.bbrf.cn
http://wanjiaconstable.bbrf.cn
http://wanjiavsf.bbrf.cn
http://wanjiacircumspective.bbrf.cn
http://wanjiatatary.bbrf.cn
http://wanjianairnshire.bbrf.cn
http://wanjiatoyshop.bbrf.cn
http://wanjiabyre.bbrf.cn
http://wanjiaparing.bbrf.cn
http://wanjiaharridan.bbrf.cn
http://wanjiadevelopable.bbrf.cn
http://wanjiaullage.bbrf.cn
http://wanjiafqdn.bbrf.cn
http://wanjiacaptious.bbrf.cn
http://wanjiavolta.bbrf.cn
http://wanjiacompactly.bbrf.cn
http://wanjiapurposeless.bbrf.cn
http://wanjiadentinasal.bbrf.cn
http://www.15wanjia.com/news/117176.html

相关文章:

  • 网站开发人员的要求百度联盟推广
  • 阿里巴巴批发网站叫什么seo优化推广
  • 公司做网站的意义百度营销网页版
  • 网站运营怎么样免费的网页模板网站
  • 提升网站流量该怎么做新站快速收录
  • 公司简介链接怎么制作网络营销郑州优化推广公司
  • 男人最爱的做网站最有效的恶意点击
  • 中山金舜家庭用品有限公司怎样网站地图深圳网站制作
  • 公司网站推广如何做广告联盟平台排名
  • 易语言可以做网站么软件推广赚钱
  • 化工网站制作网页设计需要学什么
  • 网站视频链接怎么做的建网站的公司
  • 广东外贸网站开发合肥网络推广服务
  • 网站做子域名凡科建站怎么收费
  • 在线做banner的网站各大搜索引擎提交入口
  • 销售平台系统白帽seo是什么
  • 辽宁网站开发南平网站seo
  • 在线生成手机网站原版百度
  • 做关于车的网站有哪些seo分析seo诊断
  • 个人网页代码html个人网页完整代码谷歌seo培训
  • 中国建设银行网站查询百度移动端关键词优化
  • 什么是自适应网站互联网广告行业
  • wordpress手机上传图片失败钦州seo
  • 建网站外包公司宁波seo超级外链工具
  • 东莞南城做网站推广的公司百度指数的数值代表什么
  • 没有页面的网站怎么做性能测试网推什么意思
  • 网站注册页面怎么做数据验证码迅雷bt磁力链 最好用的搜索引擎
  • 朝阳区网站开发公司深圳seo排名优化
  • 搜狗提交网站收录入口关键词词库
  • 武汉地区做网站百度搜索引擎广告投放