zoukankan      html  css  js  c++  java
  • 访问者模式

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

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

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

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

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

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

  • 相关阅读:
    Spark2.x学习笔记:Spark SQL程序设计
    Spark2.x学习笔记:Spark SQL的SQL
    Spark2.x学习笔记:Spark SQL快速入门
    Hystrix入门执行过程
    redis配置master-slave模式
    MockServer 入门
    Locust分布式负载测试工具入门
    poi读取excel元素
    hadoop+spark集群搭建入门
    Vi文档
  • 原文地址:https://www.cnblogs.com/CLFR/p/6339838.html
Copyright © 2011-2022 走看看