摘要:访问者模式一访问者模式定义表示一个作用于某对象结构中的各元素操作它使你可以在不改变各元素类的前提下,定义作用于这些元素的新操作角色抽象访问者对象具体访问者对象抽象元素对象具体元素对象结构对象二具体实现创建抽象元素对象创建具体元素对象创建抽象
访问者模式
一. 访问者模式 1.1 定义表示一个作用于某对象结构中的各元素操作.它使你可以在不改变各元素类的前提下,定义作用于这些元素的新操作.
1.2 角色抽象访问者对象(Visit).
具体访问者对象(ConcreteVisit).
抽象元素对象(Element).
具体元素对象(ConcreteElement).
结构对象(ObjectStructure).
二. 具体实现 2.1 创建抽象元素对象public interface IElement { void accept(IVisitor visitor); }2.2 创建具体元素对象
public class ElementA implements IElement { @Override public void accept(IVisitor visitor) { visitor.visit(this); } } public class ElementB implements IElement { @Override public void accept(IVisitor visitor) { visitor.visit(this); } }2.3 创建抽象访问者对象
public interface IVisitor { void visit(ElementA element); void visit(ElementB element); }2.4 创建具体访问者对象
public class Visitor implements IVisitor { @Override public void visit(ElementA element) { System.out.println("ElementA visit ... "); } @Override public void visit(ElementB element) { System.out.println("ElementB visit ... "); } }2.5 调用
public static void main(String[] args) { IElement element = new ElementA(); IVisitor visitor = new Visitor(); element.accept(visitor); element = new ElementB(); element.accept(visitor); }2.6 输出
ElementA visit ... ElementB visit ...三. 优缺点 3.1 优点
良好的扩展性.
灵活性.
3.2 缺点增加新的元素类困难.
四. 源码https://github.com/Seasons20/DisignPattern.git
END
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/69748.html
摘要:访问者模式解决的问题在我们的代码编写过程当中,经常需要对一些类似的对象添加一些的代码,我们以一个计算机对象打印组成部分为例来看下抽象基类获取名称类内存类键盘类计算机类循环打印各个组成部分这个时候上面的代码看上去好像很完美的样子,但是问 访问者模式解决的问题 在我们的代码编写过程当中,经常需要对一些类似的对象添加一些的代码,我们以一个计算机对象打印组成部分为例来看下: /** ...
摘要:原文地址原文作者是抽象语法树的缩写词,表示编程语言的语句和表达式中生成的。解释器将会遍历该数组并执行里面的语句。,,,是一组相关的类,每一个类都需要携带方法以使解释器获得它们的值或者对它们求值。 原文地址:What is an Abstract Syntax Tree 原文作者:Chidume Nnamdi showImg(https://segmentfault.com/img...
摘要:概念访问者模式实际上是让外部类能够获取树形结构的每个节点的对象,对每个对象进行操作的模式,他能让我们在不改动原有树形结构的基础上扩展功能。 概念: 访问者模式实际上是让外部类能够获取树形结构的每个节点的对象,对每个对象进行操作的模式, 他能让我们在不改动原有树形结构的基础上扩展功能。比如统计等等 在这种模式下,必须有的几个要素: 1: 具体的元素对象, 访问者实际要访问的位置(即节...
摘要:但是发出者并不清楚到底最终那个对象会处理该请求,所以,责任链模式可以实现,在隐瞒客户端的情况下,对系统进行动态的调整。因为访问者模式使得算法操作增加变得容易。访问者模式将有关行为集中到一个访问者对象中,其改变不影响系统数据结构。 总体分为3大类:创建型模式 (5种):工厂方法、抽象工厂、单例、建造者、原型结构型模式(7种):适配器、装饰器、代理、外观、桥接、组合、享元行为型模式(11种...
阅读 3280·2021-11-25 09:43
阅读 2083·2021-09-22 10:02
阅读 3310·2021-09-06 15:00
阅读 2298·2019-08-30 15:56
阅读 2346·2019-08-30 15:54
阅读 3223·2019-08-30 14:14
阅读 2257·2019-08-29 17:25
阅读 2901·2019-08-29 17:16