`
knight_black_bob
  • 浏览: 851162 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

设计模式 之 访问者模式

阅读更多

 

下载 23种设计模式源码 :http://download.csdn.net/download/knight_black_bob/8936043

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


创建型模式,共五种:
工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式

结构型模式,共七种:
适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式

行为型模式,共十一种:
策略模式 模板方法模式 观察者模式 迭代子模式 责任链模式 命令模式

备忘录模式 状态模式 访问者模式 中介者模式 解释器模式

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

 

 

 

package 设计模式.访问者模式;
/**
 * @author baoyou  E-mail:curiousby@163.com
 * @version 创建时间:2015年7月27日 上午10:02:46 
 * des:
 */
public interface Visitable {
	public void accept(Visitor visitor);
}

 

package 设计模式.访问者模式;

import java.util.Collection;

/**
 * @author baoyou  E-mail:curiousby@163.com
 * @version 创建时间:2015年7月27日 上午10:03:07 
 * des:
 */
public interface Visitor {
	public void visitString(StringElement stringE);
	public void visitFloat(FloatElement floatE);
	public void visitCollection(Collection collection); 

}

 

package 设计模式.访问者模式;

/**
 * @author baoyou E-mail:curiousby@163.com
 * @version 创建时间:2015年7月27日 上午10:04:06 des:
 */
public class StringElement implements Visitable {

	private String value; 
	public String getValue() {
		return value;
	}  
	public StringElement(String value) { 
		this.value = value;
	}



	@Override
	public void accept(Visitor visitor) {
         visitor.visitString(this);
	}

}

 

package 设计模式.访问者模式;
/**
 * @author baoyou  E-mail:curiousby@163.com
 * @version 创建时间:2015年7月27日 上午10:04:30 
 * des:
 */
public class FloatElement implements Visitable {

	private  Float value; 
	public Float getValue() {
		return value;
	} 
	public FloatElement(Float value) { 
		this.value = value;
	}
	@Override
	public void accept(Visitor visitor) {
		visitor.visitFloat(this);
	}

}

 

package 设计模式.访问者模式;

import java.util.Collection;
import java.util.Iterator;
 

/**
 * @author baoyou  E-mail:curiousby@163.com
 * @version 创建时间:2015年7月27日 上午10:05:29 
 * des:
 */
public class ConcreteVisitor implements Visitor {

	@Override
	public void visitString(StringElement stringE) { 
		System.out.println("i'm a string ,value is "+ stringE.getValue());
	}

	@Override
	public void visitFloat(FloatElement floatE) { 
		System.out.println("i'm a float ,value is "+ floatE.getValue());
	}

	@Override
	public void visitCollection(Collection collection) { 
		Iterator iterator = collection.iterator();
		while (iterator.hasNext()) { 
			Object o = iterator.next();
			if (o instanceof Visitable) {
				((Visitable) o).accept(this);
			}
		}
	}

	 

}

 

package 设计模式.访问者模式;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 
 * @author baoyou  E-mail:curiousby@163.com
 * @version 创建时间:2015年7月27日 上午9:51:23
 * des:
 */
public class VisitorTest {

	public static void main(String[] args) { 
		Visitor v = new ConcreteVisitor();
		StringElement se = new StringElement("BAOYOU");
		v.visitString(se);
		
		Collection list = new ArrayList<>();
		list.add(new StringElement("baoyou"));
		list.add(new StringElement("baoyou2"));
		list.add(new FloatElement( new Float(12)));
		v.visitCollection(list);
	}
}

 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

 

  • 大小: 8.6 KB
分享到:
评论

相关推荐

    设计模式之访问者模式

    访问者模式是一种软件设计模式,它在对象结构中定义了一个访问者的接口,使得该访问者可以访问该结构中的每一个元素,同时不影响这些元素自身的行为。这种模式的主要目的是将数据操作和业务逻辑分离,使得数据结构...

    设计模式之访问者模式(Visitor Pattern)

    **访问者模式(Visitor Pattern)**是一种行为设计模式,它提供了一种在不修改对象结构的情况下增加新操作的方法。这种模式的主要思想是将数据结构与算法分离,使得算法可以在不改变对象结构的情况下独立变化。 在...

    java设计模式之访问者模式

    访问者模式是一种软件设计模式,它允许在不改变对象结构的情况下,在对象的现有结构上增加新的操作。在Java中,这种模式尤其有用,因为它能够帮助我们保持类的封装性,同时提供了一种灵活的方式来扩展对象的功能。...

    设计模式之访问者模式(Visitor)

    访问者模式是一种行为设计模式,它使你可以在不修改对象结构的情况下,为对象添加新的操作。这种模式的核心在于将数据结构与对这些数据的操作解耦,使得增加新的操作变得容易,同时也允许独立地改变元素类和访问者类...

    设计模式之访问者模式Java版本实现

    **访问者模式**是软件设计模式中的一种结构型模式,它允许在不修改对象结构的情况下,在对象上增加新的操作。这种模式将数据结构与数据操作分离,使得代码更易于维护和扩展。 在Java中实现访问者模式,通常包括以下...

    java 设计模式之访问者模式.rar

    **访问者模式**是软件设计模式中的一种结构型模式,它在对象结构中引入了一个访问者角色,使得访问者可以对结构中的元素进行操作,同时又保持了元素本身与操作的解耦。这一模式在Java编程中有着广泛的应用,尤其在...

    Android编程设计模式之访问者模式详解

    访问者模式是一种面向对象的设计模式,其主要目的是将数据结构与对数据的操作分离开来。在Android编程中,访问者模式能够帮助开发者在不修改原有对象结构的基础上,添加新的操作,从而增强系统的灵活性和可扩展性。 ...

    设计模式之访问者模式Vistor

    **访问者模式(Visitor Pattern)**是一种行为设计模式,它允许在不修改对象结构的情况下增加对象的新功能。在软件工程中,当系统需求发生变化,需要为现有的类层次结构添加新的操作时,访问者模式能提供一个优雅的...

    23钟设计模式之访问者模式

    【访问者模式】是一种行为设计模式,它允许在不修改对象结构的情况下,为对象增加新的操作功能。在访问者模式中,一个特定的访问者对象会遍历一个对象结构(通常是一个元素的集合),并执行特定的操作。这种模式主要...

    Java 23种设计模式27访问者模式.pdf

    ### Java设计模式之访问者模式详解 #### 模式动机 访问者模式主要应用于处理一组对象,这组对象通常被存储在一个聚合结构(如列表、树等)中,并且这组对象具有不同的类型。访问者模式的核心思想在于,可以通过向...

    JAVA设计模式之访问者模式原理与用法详解

    JAVA设计模式之访问者模式原理与用法详解 访问者模式是JAVA设计模式中的一种重要模式,主要用于描述访问对象结构中各元素的操作,使得在不改变各元素类数据结构的前提下可以增加作用于这些元素的新操作。访问者模式...

    JS设计模式之访问者模式定义与用法分析

    本文实例讲述了JS设计模式之访问者模式定义与用法。分享给大家供大家参考,具体如下: 在访问者模式中,主要包括下面几个角色 1、抽象访问者:抽象类或者接口,声明访问者可以访问哪些元素,具体到程序中就是visit...

    设计模式C++学习之访问者模式(Visitor)

    访问者模式(Visitor)是一种行为设计模式,它允许在不修改对象结构的前提下向对象结构中的元素添加新的操作。这种模式将算法与数据结构分离,使得算法可以独立于数据结构进行变化,增强了系统的可扩展性。 在C++中...

    轻松掌握python设计模式之访问者模式

    ### Python设计模式之访问者模式详解 在软件开发过程中,设计模式作为一种被广泛接受的解决方案,可以帮助开发者解决常见的编程问题。其中,“访问者模式”(Visitor Pattern)是一种行为型设计模式,它允许向一组...

    C++设计模式之访问者模式

    主要介绍了C++设计模式之访问者模式,本文讲解了什么是访问者模式、访问者模式的UML类图、访问者模式的实现代码等内容,需要的朋友可以参考下

    设计模式的访问者模式的例子

    访问者模式是一种软件设计模式,它在对象结构中定义了一个访问者的接口,使得该访问者可以访问该结构中的每一个元素,同时不影响对象结构本身。这种模式的主要目的是将数据操作与数据结构分离,使得数据结构的变化...

    设计模式 访问者模式

    **访问者模式**是一种行为设计模式,它允许在不修改对象结构的情况下添加新的操作。这种模式主要用于处理具有复杂对象结构的情况,使得我们可以对结构中的每个元素执行特定操作,而无需暴露其内部实现。 访问者模式...

    java设计模式-访问者模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...

Global site tag (gtag.js) - Google Analytics