• 访问者模式


    访问者模式算是设计模式中比较复杂的设计模式了,当初看的时候也是一脸懵逼,后来在java编程思想中看到了用访问者模式来处理注解后,才对其有了一定的了解,那我就和你们叨叨访问者模式。

    官方定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。

    啥啥啥,这到底都说的啥。

    其实某种数据结构说的就是被访问者,也就是图中的Element,每种数据结构对应不同的Element实现。所谓的新的操作,就是添加一种新的Visitor实现类,来访问不同的Element。

    Java编程思想中用访问者模式来处理一个类中的注解,对于字段上的注解和方法上的注解(算是两种不同的数据结构)的处理,Vistitor都有不同的处理方式。当注解处理方式需要变化时,不需要修改原来的类,只需要增加一个新的Visitor实现类就行了,然后委托这个新的Visitor处理就行了。

    总体来说,访问者模式的可扩展性只局限于访问者类的扩展,当增加新的数据结构时,几乎所有的Visitor都需要修改。这个模式适合被访问者的模式比较固定,比如上文说的类上面的注解处理,类的结构时固定的,能够添加注解的地方也是固定的(也就是其typeDeclaration类型就那几种),而且Vistor中与具体的Element有严重的耦合,在这个模式中也看不到SOLID原则,所以在使用访问者模式时,要充分理解业务逻辑,否则,修改起来让你崩溃。

  • 相关阅读:
    如何配置wamp多站点主机
    一些类和对象问题的探索,简单易懂的命名空间及use的使用
    [4] Git使用流程
    [正则] JS常用正则
    [3] Django返回json数据
    [8] Eclipse各版本代号一览表以及官网上有很多版本的eclipse的比较
    [7] MySQL数据库--学生管理系统数据库设计
    [11]Docker02 Docker重要概念
    [12]Docker03 Centos7安装Docker
    [小程序]小程序环境搭建
  • 原文地址:https://www.cnblogs.com/CLFR/p/6339838.html
Copyright © 2020-2023  润新知