首页 > 代码库 > 访问者模式
访问者模式
访问者模式算是设计模式中比较复杂的设计模式了,当初看的时候也是一脸懵逼,后来在java编程思想中看到了用访问者模式来处理注解后,才对其有了一定的了解,那我就和你们叨叨访问者模式。
官方定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。
啥啥啥,这到底都说的啥。
其实某种数据结构说的就是被访问者,也就是图中的Element,每种数据结构对应不同的Element实现。所谓的新的操作,就是添加一种新的Visitor实现类,来访问不同的Element。
Java编程思想中用访问者模式来处理一个类中的注解,对于字段上的注解和方法上的注解(算是两种不同的数据结构)的处理,Vistitor都有不同的处理方式。当注解处理方式需要变化时,不需要修改原来的类,只需要增加一个新的Visitor实现类就行了,然后委托这个新的Visitor处理就行了。
总体来说,访问者模式的可扩展性只局限于访问者类的扩展,当增加新的数据结构时,几乎所有的Visitor都需要修改。这个模式适合被访问者的模式比较固定,比如上文说的类上面的注解处理,类的结构时固定的,能够添加注解的地方也是固定的(也就是其typeDeclaration类型就那几种),而且Vistor中与具体的Element有严重的耦合,在这个模式中也看不到SOLID原则,所以在使用访问者模式时,要充分理解业务逻辑,否则,修改起来让你崩溃。
访问者模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。