设计模式——访问者模式 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
上传用户:上善若水
u盘驱动程序 通用串行总线(USB Universal Serial Bus)是一种计算机与外部设备连接的新技术,相对于PC传统的串/并行接口,USB具有较高的数据传输率、即插即用、热插拔、易扩充和低成本等优点。从USB标准颁布以来的短时间内,USB已成为PC必备的标准接口。
上传时间: 2015-06-13
上传用户:aysyzxzm
BTMAS 网站BT发布系统是新一代BT发布系统,速度更快,超高负载,占用资源极小,非常适合中大型BT网站投入使用和运营
上传时间: 2013-12-30
上传用户:AbuGe
BTMAS 网站BT发布系统是新一代BT发布系统,速度更快,超高负载,占用资源极小,非常适合中大型BT网站投入使用和运营,商业版除拥有所有功能并可整合论坛和扩展功能等.
上传时间: 2015-06-20
上传用户:exxxds
本书从软件质量和编程思想等方面论述了软件构造问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。本书适合经验丰富、自学成才的程序员阅读,也适合于那些几乎不懂什么编程技巧的新程序员阅读.
上传时间: 2015-06-22
上传用户:15071087253
为PW 论坛的thread页面增加6种新的附件图标,增加美观性和直观性
上传时间: 2015-06-23
上传用户:gmh1314
在博创的44B0开发板上做的一个电机控制的程序,经过了测试,运行良好。可用作最最新的新手学习哈。
上传时间: 2015-06-25
上传用户:Amygdala
WDM驱动程序设计 一.WDM简介 微软不断推出新的操作系统,现在Windows98和Windows2000已经成了主流,原先用来实现驱动程序的VxD技术随着Win95的淡出也慢慢地将退出历史舞台,在Windows98和Windows2000中设备驱动程序将根据Windows驱动程序模型(WDM)来设计。WDM通过提供一种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发的驱动程序的数量和复杂性。
上传时间: 2015-06-29
上传用户:253189838
国内还比较新的network processor的微代码开发,关于cam sharing的例子,用的uc语言,告诉你如何利用已有的宏和调用硬件资源。
上传时间: 2013-12-09
上传用户:hoperingcong
国内还比较新的network processor的微代码开发,关于local memory的例子,用的uc语言,告诉你如何利用已有的宏和调用硬件资源。
上传时间: 2014-01-13
上传用户:rocwangdp