设计模式——访问者模式 Visitor模式允许我们在不改动原有结构的基础之上不断增加新的功能。 ICumulation接口定义了方法Cumulate(),旨在计算1+2+……+n,有两种不同的实现方法,一个是一般的叠加算法GeneralArithmetic,一个是高斯算法GaoSiArithmetic。 因为某种原因,系统需要添加求平均值的功能,还有计算1到n的平方和。 按照一般的思路,我们需要在ICumulation中定义两个方法分别计算平均值和平方和,并在实现类中同时添加相应的方法。在搭建了visitor模式的架构以后,添加功能的代码被移植到ICumulationVisitor中,添加的两种功能也分别被以子类AverageVisitor和PowerVisitor实现。 功能的扩展从在类中添加方法的方式变成了添加新类的方式,该类继承一定的Visitor接口。这是一个90度的转换,使得架构符合开放封闭(OCP)原则:功能的扩展无需改动原有代码。 同时,这里也体现了单一职责原则(SRP),ICumulation层次结构可以因为出现了不同的算法而改变,但是不应该因为需要计算不同的东西(功能)而改变,算法和功能是横向和纵向的关系。这里visitor模式隔离了算法和功能,ICumulation层次结构负责算法,ICumulationVisitor层次结构负责功能。
标签: ICumulation Cumulate Visitor 模式
上传时间: 2015-06-12
上传用户:上善若水
文章介绍了利用车牌的纹理特征和区域形状特征检测车牌区域情况。为提高区域检 测的正确性, 利用新的改进的主动轮廓模型, 利用先验知识确定精确的车牌边界。在精确的车牌区 域中切割出车牌中的单个字符, 最后利用支持矢量机对字符进行分类识别。 汤志勇 杨晨晖 王炳波 (厦门大学 厦门361005)
上传时间: 2014-01-21
上传用户:thesk123
u盘驱动程序 通用串行总线(USB Universal Serial Bus)是一种计算机与外部设备连接的新技术,相对于PC传统的串/并行接口,USB具有较高的数据传输率、即插即用、热插拔、易扩充和低成本等优点。从USB标准颁布以来的短时间内,USB已成为PC必备的标准接口。
上传时间: 2015-06-13
上传用户:aysyzxzm
新东西。刚做的毕业设计,而且顺利通过。多多下载
标签: 毕业设计
上传时间: 2015-06-13
上传用户:sunjet
文件名称:新曦 我的资源 搜索软件 源程序(Borland Delphi 7)说明
上传时间: 2014-01-13
上传用户:qweqweqwe
BTMAS 网站BT发布系统是新一代BT发布系统,速度更快,超高负载,占用资源极小,非常适合中大型BT网站投入使用和运营
上传时间: 2013-12-30
上传用户:AbuGe
oracle相关技术,Oracle9i新特性:Flashback,请大家多多关注
标签: Flashback oracle Oracle 新特性
上传时间: 2015-06-17
上传用户:邶刖
oracle技术新特性-SPFILE的使用,请大多多关注
上传时间: 2015-06-17
上传用户:思琦琦
这是一个关于移动设备上网的编程巧的书籍 大家可以通用次技术。为新的移动上网添加汗水。
上传时间: 2013-12-17
上传用户:ynsnjs
copua是金融数学计算中的一类新模型。本代码提供了最常用的copula模型,如clayton等中的参数估计等内容
上传时间: 2013-12-10
上传用户:CHENKAI