设计模式——访问者模式 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
上传用户:上善若水
而是一本关于设计模式的书,它描述了在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。设计模式捕获了随时间进化与发展的问题的求解方法,因此它们并不是人们从一开始就采用的设计方案。它们反映了不为人知的重新设计和重新编码的成果,而这些都来自软件开发者为了设计出灵活可复用的软件而长时间进行的艰苦努力。设计模式捕获了这些解决方案,并用简洁易用的方式表达出来。 设计模式并不要求使用独特的语言特性
标签: 设计模式
上传时间: 2015-06-14
上传用户:athjac
深入浅出设计模式采用csharp语言表述的源代码
上传时间: 2015-06-15
上传用户:lo25643
深入浅出设计模式,采用java语言表述的源代码
标签: 设计模式
上传时间: 2015-06-15
上传用户:lanhuaying
设计模式迷你手册,对于程序开发、软件设计,需求计划书的设计具有特殊帮助,分类为创建型、结构型、行为型等,CHM,software engineering
标签: 设计模式
上传时间: 2015-06-19
上传用户:wanghui2438
设计模式-可复用面向对象软件的基础 设计模式使人们可以更加方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式帮助你做出有利于系统复用的选择,避免设计损害了系统复用性。通过提供一个显式类和对象作用关系以及它们之间潜在联系的说明规范,设计模式甚至能够提高已有系统的文档管理和系统维护的有效性。简而言之,设计模式可以帮助设计者更快更好地完成系统设计 --引言部分
上传时间: 2013-12-29
上传用户:woshini123456
设计模式的一本好书,作者把他转成delphi语言了
上传时间: 2013-12-24
上传用户:笨小孩
一本解析EJB设计模式的好书,书中通过PETSTROR实例,全面的讲解了EJB的设计模式
上传时间: 2014-06-10
上传用户:redmoons
J2EE设计模式,设计企业应用软件必备参考书
上传时间: 2015-07-04
上传用户:TRIFCT
Java设计模式,提供相关UML图和源代码,包括GOF的23种设计模式。
上传时间: 2013-12-31
上传用户:sunjet