首页 > 其他分享 >设计模式之访问者模式

设计模式之访问者模式

时间:2024-01-29 14:56:43浏览次数:17  
标签:模式 算法 具体 手机 设计模式 访问者

1. 定义

将算法与其所作用的对象隔离

2. 口语化表述

访问者模式其实就是将具体算法与作用对象分离

举个例子,现在需要使用手机打电话,人已经具备了,就差个手机

不同的手机有不同的操作方式,所以需要人根据具体手机来操作

这就类似于访问者模式,将具体怎么打电话的操作交与人(访问者)来实现

下面的描述会沿用这个上述这个场景

3. 个人理解

笔者认为,访问者其实是一种组合 + 动态注入的设计方法

组合表现在,手机有多种,需要去选择

动态注入表现在,人在拿到手机之后再根据实际进行操作

(希望将具体实现与对象分离)

4. 总结

4.1 设计优点

  • 单一职责原则

    具体算法实现与对象分离

  • 开闭原则

    无需对上下文进行大范围修改就能够修改以有算法

4.2 适用场景

  • 可使用访问者模式来清理的业务逻辑

    将具体算法实现抽离

5. 参考资料

[1] 访问者设计模式 (refactoringguru.cn)

[2] 访问者模式 | 菜鸟教程 (runoob.com)

标签:模式,算法,具体,手机,设计模式,访问者
From: https://www.cnblogs.com/jiujiubashiyi/p/17980828

相关文章

  • 单例模式
    单例模式一、什么是设计模式解决问题的模板,在代码编写的过程中,前辈们会遇到很多问题并尝试解决,长久以来就形成了一套相对规范的解决方法而单例方法就是其中一种使用较多的设计模式二、为什么要使用单例方法(设计模式)设计模式可以帮助开发人员编写高质量、可重用和易于维护......
  • 设计模式(二十三)访问者
    一、定义表示一个作用于某对象结构中的各个元素的操作。访问者模式让你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式是一种对象行为型模式二、描述访问者模式是一种较为复杂的行为型模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通......
  • 通达信【金钻天启2210】幅图选股公式 全新思路的超短线操作实战模式指标,成熟实战的思
    原公式某地售价1500元哦,完全加密,股海网和谐源码文件分享本指标一个幅图信号公式,一个选股公式全新思路的超短线操作实战模式指标,本指标是一款以低吸判断最近洗盘结束后,捕捉强势龙头信号介入点提示,自动过滤近期市场弱势股与不活跃股;成熟实战的思路策略设计,快速提升选股能力;贴近......
  • 设计模式:策略模式/状态模式
    设计模式是通用的、可复用的代码设计方案,也可以说是针对某类问题的解决方案,因此,掌握好设计模式,可以帮助我们编写更健壮的代码。wiki中将设计模式分为四类,分别是:创建模式(creationalpatterns)结构模式(structuralpatterns)行为模式(behavioralpatterns)并发模式(concurrencypatt......
  • 用Java语言实现一个观察者模式
    观察者模式(也被称为发布/订阅模式),提供了避免组件之间紧密耦合的另一种方法,它将观察者和被观察的对象分开。在该模式中,一个对象通过添加一个方法(该方法允许另一个对象,即观察者注册自己)使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。这些观察者收到消......
  • 命令行模式
    定义:将“请求”封装成对象,以便使用不同的请求补充解释:解决了应用程序中对象的职责以及他们之间的通信方式,使发送者和接收者完全解耦,发送者和接收者之间没有没有直接关系,下命令的对象只知道如何发送请求,不知道如何完成请求类型:行为型适用场景:请求调用者和请求接收者需要解耦,......
  • 《设计模式之禅》读书笔记
    参考  https://zhuanlan.zhihu.com/p/357889775 一、六大设计原则单一职责原则定义:应该有且仅有一个原因引起类的变更。举例:属性和行为拆分,例如setPassword(Stringpassword)和changePassword(Stringpassword)。单一职责原则提出了一个编写程序的标准,用“职责”或“......
  • 设计模式
    1、设计模式七大原则:1)单一职责原则,一个类或者一个方法只负责一项原则2)接口隔离原则,客户端不应该依赖他不需要的接口3)依赖倒转原则,细节依赖抽象(面向接口编程)4)里氏替换原则,子类中尽量不重写父类的方法,可通过聚合、组合解决5)开闭原则,对扩展开放,对修改关闭6)迪米特法则,最少知道原......
  • jax框架为例:求hession矩阵时前后向模式的自动求导的性能差别
    注意:本文相关基础知识不介绍。给出代码:fromjaximportjacfwd,jacrevimportjax.numpyasjnpdefhessian_1(f):returnjacfwd(jacrev(f))defhessian_2(f):returnjacfwd(jacfwd(f))defhessian_3(f):returnjacrev(jacfwd(f))defhessian_4(f):ret......
  • 通达信【小楷超级竞价秘籍】竞价低吸+激进模式二合一玩转竞价 源码文件分享
     本套竞价指标,原价200金钻哦(1金钻=10元,就是2000元哦)小楷超级竞价秘籍,经过半年时间的研发测试,现在将这套系统推出!一、此指标包括选股预警+使用说明,预警时间为上午9.25-9.30分二、此指标包括两种竞价模式竞价激进模式+竞价低吸模式三、竞价激进模式适用于激进选手,出票一般都是......