五一长假,没有出去,不喜欢嘈杂的人群,玩了会游戏发泄了下憋在心底的戾气,手旁大马克杯里是母亲泡的绿茶。点开自己的播放列表,耳机里传来的是理查德克莱德曼的致爱丽丝。自己是个凡人,卑微渺小的活着。不说废话了,搞起:

模板方法模式是一种行为型模式,原理比较简单,就是对多态的一种应用,自己也在无意识中使用过很多次,看书时才意识到这种方式被总结为设计模式。

首先说说我自己的理解:模板方法模式是多态的一种应用。书上如此描述:"在模版方法模式中,通过在模版抽象类中定义一个操作的算法骨架,将一些步骤抽取封装到具体的抽象方法中,强迫子类进行按需要重写实现方法,这样使得在使用的时候,子类可以不改变算法结构即可重新定义算法的特定步骤。模版方法模式是基于继承代码复用的基本技术。"--摘抄自阎宏博士的《JAVA与模式》一书

核心是定义标准如类图:


看到这里我觉得没有什么上代码的必要了。。。。。这里盲写一下

// 抽象父类,定义手机这种产品以及三个抽象方法
abstract class Phone {
abstract void style(); abstract void configuration(); abstract void call();
} // 子类一,普通手机类,实现三个抽象方法
class NormalPhone extends Phone {
public void style() {
System.out.println("生产塑料外壳");
} public void configuration() { System.out.println("装配单核CPU1G内存");
} public void call() {
System.out.println("打电话。。");
}
} // 自类二,高级手机类,实现三个抽象方法 class HighGradelPhone extends Phone { public void style() {
System.out.println("生产闪闪发光的土豪金外壳");
} public void configuration() { System.out.println("装配108核CPU10G内存");
} public void call() {
System.out.println("打电话。。。");
}
} public class Factory {
public static void main(String[] args) {
// 普通手机流水线:
Phone normal = new NormalPhone();
normal.style();
Phone hight = new HighGradelPhone();
hight.style();
}
}

emmmm下一篇见

【设计模式】行为型02模板方法模式(Template Method Patten)的更多相关文章

  1. 设计模式 ( 十九 ) 模板方法模式Template method(类行为型)

      设计模式 ( 十九 ) 模板方法模式Template method(类行为型) 1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行 ...

  2. 模板方法模式 Template method 行为型 设计模式(二十六)

    模板方法模式 Template method 上图为网上百度的一份简历模板截图   相信大家都有求职的经历,那么必然需要简历,写简历的时候,很可能你会网上检索一份简历模板,使用此模板的格式,然后替换为 ...

  3. 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)

    原文:乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 模板方法模式(Template Method ...

  4. 设计模式 - 模板方法模式(template method pattern) JFrame 具体解释

    模板方法模式(template method pattern) JFrame 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(templ ...

  5. 设计模式 - 模板方法模式(template method pattern) 排序(sort) 具体解释

    模板方法模式(template method pattern) 排序(sort) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(tem ...

  6. 设计模式 - 模板方法模式(template method pattern) 具体解释

    模板方法模式(template method pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 模板方法模式(template metho ...

  7. 二十四种设计模式:模板方法模式(Template Method Pattern)

    模板方法模式(Template Method Pattern) 介绍定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Template Method使得子类可以不改变一个算法的结构即可重定义该算法 ...

  8. 模板方法模式(Template Method Pattern)——复杂流程步骤的设计

    模式概述 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单. 在 ...

  9. 模板方法模式-Template Method(Java实现)

    模板方法模式-Template Method 在模板模式中, 处理的流程被定义在父类中, 而具体的处理则交给了子类. 类关系图很简单: Template接口 这里定义了子类需要实现的方法(before ...

随机推荐

  1. DDD实战12 值对象不创建表,而是直接作为实体中的字段

    这里的值对象如下风格: namespace Order.Domain.PocoModels { //订单地址 //虽然是值对象 但是不继承ValueObject //因为继承ValueObject会有 ...

  2. BZOJ 1483 HNOI2009 梦幻布丁 名单+启示录式的合并

    标题效果:特定n布丁.每个人都有一个颜色布丁,所有的布丁反复有一定的颜色变化的颜色,颜色反复询问的段数 数据范围:n<=10W 色彩数<=100W 启发式合并名单0.0 从来不写清楚 实际 ...

  3. matlab 高阶(二) —— 数值、溢出问题的解决

    gammaln() 在处理上溢和下溢方面要比 log(gamma()) 更好: log1p() (1 plus)对于较小的 x 值时,log1p(x) 要比 log(1+x) 更为精确: 当 x 取值 ...

  4. Android备注26.Android异步任务(AsyncTask)

    转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.引言     我们知道Android的UI线程主要负责处理用户的按键事件.用户触屏事件及屏幕画 ...

  5. jquery 相对元素

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  6. QT添加openssl的方法

    Assuming Windows you can download its installation from Win32 OpenSSL Installation Project page. You ...

  7. Window Features 总览

    This overview discusses features of windows such as window types, states, size, and position. Window ...

  8. Win8Metro(C#)数字图像处理--2.27图像加法运算

    原文:Win8Metro(C#)数字图像处理--2.27图像加法运算  [函数名称] 图像加法函数AddProcess(WriteableBitmap src, WriteableBitmap a ...

  9. 【Gerrit】Add a Member

    add user email:XXXX@163.com             username:XXXX( songfei) Add Step: System Server:1. ssh 服务器用户 ...

  10. Qt4可以使用trUtf8函数,其内容可以是中文,也可以是\F硬编码

    显示在textBrowser->setText 中文乱码 转成QObject::trUtf8即可. ui->textBrowser->setText((QObject::trUtf8 ...