哈哈,没想到。在不知不觉中拥有第七书面文章,看来我仍然非常有毅力。

上坚持一件事非常easy,仅仅要你每天不断的朝着自己的目标出发,不论什么事情都不会挡着你。好了大道理不多说,谁都懂。那看看这个模板模式大家懂不懂了。

对于模板模式可能听起来非常吓人,事实上大家都用过。仅仅是不知道罢了。也非常easy。

从字面意思上看就是我写出一个模板。然后其它类直接继承它就行拥有模板类中的东西了,听起来像继承的定义。是的,就像如今开发一个论坛,为了可以开发速度更快,我们通常就是网上找一个模板下载下来,然后在模板基础上进行二次开发,道理一个样。

模板模型定义:定义一个操作中的算法的股价,而将一些步骤延迟到子类中。模板方法使得子类能够不改变一个算法的结构就可以重定义该算法的某些特定步骤。

<<大话设计模式>>对于本章是以“小菜”面试解答选择题为故事展开的,意思是全部的选择题都是一样的,不一样的就是答题者的答案而已。那么开发这个程序的变化点就是答案。不变的就是题目。那好我们将题目封装到抽象类中,子类封装答案就可以,这就是模板模型。

废话不多说,照样上代码

1、模板抽象类,将子类共同拥有的代码封装起来

publicabstractclass AbstratorClass {

publicabstractvoid method1();

publicabstractvoid method2();

//模板方法。事实上就是将公共的东西放到抽象类里面去了。即子类继承一个共同的模板,降低代码重合,增强复用

publicvoid templateMethod(){

method1();

method2();

System.out.println("我是模板");

}

}

、子类A和B

publicclass ClassA
extends AbstratorClass {

@Override

publicvoid method1() {

//
TODO Auto-generatedmethod stub

System.out.println("我是类A的方法1");

}

@Override

publicvoid method2() {

//
TODO Auto-generatedmethod stub

System.out.println("我是类A的方法2");

}

}

publicclass ClassB
extends AbstratorClass {

@Override

publicvoid method1() {

//
TODO Auto-generatedmethod stub

System.out.println("我是类B的方法1");

}

@Override

publicvoid method2() {

//
TODO Auto-generatedmethod stub

System.out.println("我是类B的方法2");

}

}

、client调用

publicclass TemplateClient {

/**

* @param args

*/

publicstaticvoid main(String[] args) {

//
TODO Auto-generatedmethod stub

AbstratorClass class1 =
new
ClassA();

class1.templateMethod();

class1 = new ClassB();

class1.templateMethod();

}

}

事实上关键代码就一个地方,就是抽象类中封装的模板方法,而子类中的方法就是自己的逻辑了,想怎么写都能够了与其它子类无关,唯一同样的就是模板中的逻辑了。

总结:模板方法模式是通过把不变行为搬移到超类,去除子类中的反复代码来体现它的优势。事实上就是提供了一个非常好的代码复用平台,由于有时候,我们会遇到由一系列步骤构成的过程须要运行。这个过程从高层次上看是同样的。可是步骤的实现可能不同。这时候,模板方法模式该上场了………

附上代码:http://download.csdn.net/detail/jzhf2012/8102387

版权声明:本文博客原创文章,博客,未经同意,不得转载。

&lt;七&gt;阅读&lt;&lt;大话设计模式&gt;&gt;该模板模型的更多相关文章

  1. &lt;八&gt;阅读&lt;&lt;大话设计模式&gt;&gt;该模型的外观

    Facade模式其实很好理解,被表面的东西展示海报.内部的东西,你不知道(因为我们有一个好包).例如,外部和公司内部制度,5交互系统,此5互.那么第一种就是外部系统和5个系统都进行交互:另外一种就是做 ...

  2. 大话设计模式(带目录完整版).pdf等

    点击进入百度网盘 大话设计模式(带目录完整版).pdf等 保存至网盘下载二维码举报 赞(0)| 评论 | 分享至 分享时间:2014-04-01 11:02 | 467次浏览 130次下载 81次保存 ...

  3. 【Python】《大话设计模式》Python版代码实现

    <大话设计模式>Python版代码实现 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼 ...

  4. 大话设计模式--Python

    作者:五岳 出处:http://www.cnblogs.com/wuyuegb2312 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一 ...

  5. 《大话设计模式》Python版代码实现

    上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼界.<大话设计模式>的代码使用C#写成的 ...

  6. 负载均衡算法,轮询方式 大话设计模式之工厂模式 C#

    负载均衡算法,轮询方式 2018-04-13 17:37 by 天才卧龙, 13 阅读, 0 评论, 收藏, 编辑 学无止境,精益求精 十年河东,十年河西,莫欺少年穷 学历代表你的过去,能力代表你的现 ...

  7. C# Json反序列化 C# 实现表单的自动化测试<通过程序控制一个网页> 验证码处理类:UnCodebase.cs + BauDuAi 读取验证码的值(并非好的解决方案) 大话设计模式:原型模式 C# 深浅复制 MemberwiseClone

    C# Json反序列化   Json反序列化有两种方式[本人],一种是生成实体的,方便处理大量数据,复杂度稍高,一种是用匿名类写,方便读取数据,较为简单. 使用了Newtonsoft.Json,可以自 ...

  8. 大话设计模式C++版——装饰模式

    女人常说男人喜新厌旧,只见新人笑,那闻旧人哭,但装饰模式(Decorator)却是一种结交新朋友不忘老朋友的设计模式,非常适合去古代当老公(现代是不行的,因为只能娶一个老婆了).装饰模式的本质是每一个 ...

  9. 大话设计模式C++版——观察者模式

    观察者模式是一种类似于消息分发的模式,用于一个任务需要被多个对象监听的场景,或者成员对象需要反向通知类对象的情况,是一种很有用的设计模式.    这里以大话设计模式中的例子为例,办公室员工A.B.C在 ...

随机推荐

  1. RH133读书笔记(1)-Lab 1 Managing Startup

    Lab 1 Managing Startup Goal: To familiarize yourself with the startup process System Setup: A system ...

  2. 集差集 哈希表 比较数据库的照片和server画面上,将server垃圾上的图片删除

    SSH 骨架code: public String deleRubbishAd(){ int deleADcount = 0; rubbishADtp = configDao.rubbishADtp( ...

  3. HDU 3988 Harry Potter and the Hide Story(数论-整数和素数)

    Harry Potter and the Hide Story Problem Description iSea is tired of writing the story of Harry Pott ...

  4. Mysql 5.6 新特性

    随笔,真的随笔,以后理解得更深了再修改.   Index Condition Pushdown 更多的让存储引擎去处理Where语句中的条款,避免返回无关字段数据等:   Multi-Range Re ...

  5. Android开发学习总结——Android开发的一些相关概念(转)

    一.什么是3G.4G 1995年问世的第一代模拟制式手机(1G)只能进行语音通话. 1996到1997年出现的第二代GSM.CDMA等数字制式手机(2G)便增加了接收数据的功能 Ÿ 3G指的是第三代移 ...

  6. 佛祖保佑,从来没有Bug

    <span style="font-size:14px;">// _ooOoo_ // o8888888o // 88" . "88 // (| - ...

  7. [课程分享]IT软件项目管理(企业项目甘特如是评价、维护管理、文档管理、风险管理、人力资源管理)

    [课程分享]IT件项目管理(企业项目甘特图案例评价.维护管理.文档管理.风险管理.人力资源管理) 对这个课程有兴趣的朋友能够加我的QQ2059055336和我联系 课程讲师:丁冬博士 课程分类:Jav ...

  8. OSChina 的URL类的源代码重写过程

    此代码是 oschina 到手柄形状像 http://www.oschina.net/p/tomcat 这种URL 此类已经废弃,改用 http://www.oschina.net/code/snip ...

  9. sql server 2008如何导入mdf,ldf文件

    sql server 2008怎样导入mdf,ldf文件   网上找了非常多解决sql server导入其它电脑拷过来的mdf文件,多数是不全.遇到的解决方法不一样等问题,下边是找到的解决这个问题的最 ...

  10. GDI+学习笔记(六)渐变画笔

    刷,顾名思义,它是一样的刷.提请设备,还记得常唱歌曲,"我是一个画家.." 好吧.跑题了. 本系列博客希望尽可能简单的描写叙述每项功能,而不希望把每一个參数都介绍的详具体细,假设须 ...