设计模式——访问者模式 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
在USB 固件程序设计中的主循环程序
上传时间: 2015-06-13
上传用户:q123321
USB固件程序编写中 有关USB 协议中描述副的头文件定义
上传时间: 2015-06-13
上传用户:fhzm5658
USB中 USB 控制芯片的头文件定义!!!1
上传时间: 2014-07-25
上传用户:stvnash
此为一个卡巴斯基的KEY文件内容,仅供参考。
上传时间: 2013-12-18
上传用户:2467478207
代码包括《Java语言与面向对象程序设计题解与实验指导》一书中 “习题解答”部分的所有程序的Java源代码和编译后生成的字节码或相应的HTML文件。 盘中的目录与书中的章节一致。
上传时间: 2015-06-15
上传用户:hzy5825468
将 DOS 下包含重定位信息的 .EXE 文件转换成指定起始加载位置的 .BIN 文件。在 BIOS 开发和 X86 嵌入式开发中极有用。
上传时间: 2013-12-26
上传用户:tianyi223
很不错的一个文件,希望大家都喜欢,很实用
标签: 家
上传时间: 2013-12-25
上传用户:515414293
这文档,是祥细说明了Int 13调用的技术文件.
上传时间: 2014-01-21
上传用户:1159797854