博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式 之 访问者模式
阅读量:6983 次
发布时间:2019-06-27

本文共 2660 字,大约阅读时间需要 8 分钟。

 

23种设计模式源码 :

 

创建型模式,共五种:
结构型模式,共七种:
行为型模式,共十一种:

 

 

 

 

 

 

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捐助),没钱捧个人场,谢谢各位。

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

 

 

 

转载地址:http://igtpl.baihongyu.com/

你可能感兴趣的文章
GIS基础软件及操作(十)
查看>>
HDOJ 2041 超级楼梯
查看>>
1108File Space Bitmap Block损坏能修复吗2
查看>>
遭遇DBD::mysql::dr::imp_data_size unexpectedly
查看>>
人人都会设计模式:03-策略模式--Strategy
查看>>
被忽视但很实用的那部分SQL
查看>>
解读阿里云oss-android/ios-sdk 断点续传(多线程)
查看>>
ML之监督学习算法之分类算法一 ——— 决策树算法
查看>>
骡夫电商地址
查看>>
亚信安全火力全开猎捕“坏兔子”,全歼详解
查看>>
智能家居——IoT零基础入门篇
查看>>
《Linux From Scratch》第一部分:介绍 第一章:介绍-1.3. 更新日志
查看>>
阿里将在雄安新区设3家子公司:涉AI、蚂蚁金服和菜鸟;北航设立全国首个人工智能专业,与百度合作办学...
查看>>
Powershell指令集_2
查看>>
归并排序算法
查看>>
北京第一个公共云计算平台即将诞生
查看>>
5G频谱相争“兵戎相见”各相部署风起云涌
查看>>
云计算从“仰望星空”到“脚踏实地”
查看>>
台积电要造第一款7nm芯片 明年下半年可投产
查看>>
《逻辑与计算机设计基础(原书第5版)》——3.9 二进制加法器
查看>>