《设计模式精解》学习笔记(十四)------Template Method(模板方法)模式
来源:互联网 发布:vwap算法 编辑:程序博客网 时间:2024/05/01 13:50
《设计模式精解》学习笔记(十四)------Template Method(模板方法)模式
GOF:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。
继承是OO思想的三大特性(封装、继承、多态)之一。继承是为了更好的代码重用,但是在今天,越来越多的OO方法学大师都不止在一处的总结出:要优先运用组合而不是继承。Template Method模式是目前学到的最简单的模式之一。这也是比较常用到的模式。在Template Method模式中就充分运用了继承。其实在我看来,Template Method模式就是继承。在一个画图的程序中,我写了一个叫drow的方法,它将画出我需要的图形。Template Method模式可以帮我做到这一点,因为对方法的调用通过一个引用来进行的,而这个引用指向的对象属于某一个派生类。
下面是Template Method模式UML图:
下面是实现的Java代码:
定义一个抽象类,用来定义某算法的骨架,在这里是abstract drow。
package TemplateMethod;
public abstract class ShapeTemplate
{
public abstract void drow();//Template Method
}//end abctract class shape
package TemplateMethod;
派生出一个具体类,在具体类中实现了方法drow。
public class Square extends ShapeTemplate
{
@Override
public void drow()
{
System.out.println("画出正方形");
}//end drow()
}//end class Square
package TemplateMethod;
测试代码:
public class TemplateMethodPattern
{
private ShapeTemplate square;
public TemplateMethodPattern()
{
square = new Square();
}//end TemplateMethodPattern()
public void showTemplateMethodPattern()
{
square.drow();
}//end showTemplateMethodPattern()
public static void main(String[] args)
{
System.out.println("The Template Method Pattern!");
TemplateMethodPattern tmp = new TemplateMethodPattern();
tmp.showTemplateMethodPattern();
}//end main(...)
}//end class TemplateMethodPattern
运行结果:
The Template Method Pattern!
画出正方形
Template Method模式让我们可以先定义这些步骤地顺序,然后重载那些需要改变的步骤。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=954056
- 《设计模式精解》学习笔记(十四)------Template Method(模板方法)模式
- 设计模式学习笔记(二十四)——Template Method模板方法
- 【设计模式】学习笔记11:模板方法(Template Method)
- 【设计模式学习笔记二十四】【行为模式】【模板方法(Template Method)】
- 设计模式学习总结:模板方法模式(Template Method)
- 设计模式学习笔记--模板方法(Template Method)模式
- 浅谈Java设计模式(十四)模板方法模式(Template Method)
- Java面向对象设计模式(十四)——模板方法模式(Template Method)
- Java开发中的23种设计模式之十四:模板方法模式(Template Method)
- 设计模式学习笔记(十六)——Template Method模板方法模式
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 设计模式学习笔记(三):模板方法模式【Template Method】(一) 问题提出
- 设计模式学习笔记(三):模板方法模式【Template Method】(二) 问题解决
- 设计模式学习笔记(三):模板方法模式【Template Method】(三) 问题引申
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 设计模式C++学习笔记之九(Template Method模板方法模式)
- 《设计模式精解》学习笔记(十一)------Decorator(装饰)模式
- 基于.Net平台应用程序唯一运行实例实现
- 《设计模式精解》学习笔记(十二)------Singleton(单件)模式
- 在人力资源树当中,上级对下级员工信息查看修改操作。
- 《设计模式精解》学习笔记(十三)------Observer(观察者)模式
- 《设计模式精解》学习笔记(十四)------Template Method(模板方法)模式
- 《设计模式精解》学习笔记(十五)------FactoryMethod(工厂方法)模式
- 做树题目心得体会
- 《设计模式精解》学习笔记(十六)------总结
- Jabber学习笔记 之二
- 设计模式----Builder(生成器)模式
- 设计模式----Prototype(原形)模式
- 程序员考试笔记
- 设计模式----Composite(组合)模式