网站大量收购独家精品文档,联系QQ:2885784924

基于JAVA的模板设计模式研究.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于JAVA的模板设计模式研究   摘要:在 Java 面向对象的程序设计中有效地利用模板设计模式, 可以巧妙解决变化对系统带来的影响,使系统扩展性增强。本文重点讨论了模板设计模式的定义与结构,并对其应用进行了深入探讨。   关键词:模板方法;抽象类;具体类   中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)19-30060-03   Studying the Design Model Based on Java   LIU Fan-yan   (Department of Information Engineering, Zhuzhou Professional Technology College, Zhuzhou 410000, China)   Abstract: Programming basic on Java Object Oriented, it would solve skillfully the change to the system, and enhance the systems extend if make full use of the template designing model. The article pays attetion to discuss the defing and structure of the template desinging modle, and lucubrate its application.   Key words: Template Method; Abstract Class; Entitative Class      1 引言      模板设计模式是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使用到了继承关系。而合理的利用继承关系,能对系统设计起到很好的作用。模板设计模式就是其中的一个使用范例。深入研究模板设计模式能加深对继承的理解,对OO的核心思想有更深更新的认识,熟悉模扳设计模式是重新学习继承的开始[1]。模板设计模式巧妙解决变化对系统带来的影响。使用模板方法能使系统扩展性增强,最小化了变化对系统的影响。      2 定义与结构      GOF给模板方法(Template Method)模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。所谓算法的结构,可以理解为根据需求设计出来的业务流程。而特定的步骤就是指那些可能在内容上存在变化的环节。模板设计模式的简单模式结构为:   1) AbstractClass(抽象类):定义了一到多个的抽象方法,以供具体的子类来实现它们;而且还要实现一个模板方法,来定义一个算法的骨架;   2) ConcreteClass(具体类):实现父类中的抽象方法以完成算法中与特定子类相关的步骤。   图1即为模板设计模式的结构图。   ■   图1 模板设计模式的结构图      3 模板设计模式的应用研究      模板设计模式的应用很多,比如有在线购物功能的网站,经常要对商品进行各种各样的排名:按商品的点击率排名、按商品的购买率排名、按商品的入站时间排名、按商品的类别进行的搜索等等。这些都是一些搜索功能,功能完全相同;不同的要么是搜索的算法。又比如,银行利率的计算,都是利率乘以本金和存款时间,但是,各种存款方式计算利率的方式不同,一般而言,定期的存款利率比活期高,而定期的时间越长,它的利率也越高。因此,我们在设计“银行帐户”这个类的时候,可以将计算利息这个方法定义成抽象方法,在这个方法中,将计算利息的算法的骨架搭建出来,而对于一些细节,推迟到子类中实现。   这个思路的实现方法为:我们给所有类型的帐户定义一个超类LoanAccount,在这个超类中,有一个用于计算利息的方法caculateInterest(),已经将它的算法写好了,这个方法返回一个“本金*利率”的值。但是,因为其中的利率根据存款类型的不同而不同,所以没有具体的实现获得利率的方法,所以将这个获得利率的方法放到具体的子类AccountA及AccountB中去实现,根据不同的子类,设计出不同的获得利率的方法。下面是这个思路的具体实现:   //TestAccoutn.java,该程序已在J2SE中调试通过   abstract class LoanAccount{   public double Interest;//利息   public double fund;//本金   public double calculateInterest(){   Inter

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档