设计模式之模板模式:Template模式
2013-09-12 14:32
302 查看
一. 模式概述
摸板方法(Template Method)模式是一种非常简单而又经常使用的设计模式.先创建一个父类,把其中的一个或多个方法留给子类去实现,这实际上就是在使用摸板模式.所谓的摸板模式可以这样来理解:"在一个类中定义一个算法,但将此算法的某些细节留到子类中去实现.换句话说,基类是一个抽象类,那么你就是在使用一种简单形式的摸板模式."
更近一步可以这样来理解:"准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方法实现这些抽象方法,从而对剩余的逻辑有不同的实现."
二. 模式意图
将一个类的基本部分抽取出来放到一个基类中,这样它就不必重复出现在几个派生类里.
三. 模式UML图
四. 模式结构与参与者
抽象摸板角色:
1. 定义了一个或多个抽象操作,以便让子类实现.
2. 定义并实现了一个摸板方法.
具体摸板角色:
1. 实现父类所定义的一个或多个抽象方法.
2. 每一个抽象摸板角色都可以有任意多个具体摸板角色与之对应.
3. 每一个具体摸板角色都可以给出这些抽象方法的不同实现.
Java代码
public abstract class Template
{
protected abstract void checkFinance();
public final void doTotal()
//模板方法
{
checkFinance();
System.out.println("Company Finance has been check-out ");
}
}
public class FilialeTemplate extends Template
{
protected void checkFinance()
{
System.out.println("Filiale render check report");
}
}
public class TestTemplate
{
public static void main(String[] args)
{
Template template = new FilialeTemplate();
template.doTotal();
}
}
摸板方法(Template Method)模式是一种非常简单而又经常使用的设计模式.先创建一个父类,把其中的一个或多个方法留给子类去实现,这实际上就是在使用摸板模式.所谓的摸板模式可以这样来理解:"在一个类中定义一个算法,但将此算法的某些细节留到子类中去实现.换句话说,基类是一个抽象类,那么你就是在使用一种简单形式的摸板模式."
更近一步可以这样来理解:"准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方法实现这些抽象方法,从而对剩余的逻辑有不同的实现."
二. 模式意图
将一个类的基本部分抽取出来放到一个基类中,这样它就不必重复出现在几个派生类里.
三. 模式UML图
四. 模式结构与参与者
抽象摸板角色:
1. 定义了一个或多个抽象操作,以便让子类实现.
2. 定义并实现了一个摸板方法.
具体摸板角色:
1. 实现父类所定义的一个或多个抽象方法.
2. 每一个抽象摸板角色都可以有任意多个具体摸板角色与之对应.
3. 每一个具体摸板角色都可以给出这些抽象方法的不同实现.
Java代码
public abstract class Template
{
protected abstract void checkFinance();
public final void doTotal()
//模板方法
{
checkFinance();
System.out.println("Company Finance has been check-out ");
}
}
public class FilialeTemplate extends Template
{
protected void checkFinance()
{
System.out.println("Filiale render check report");
}
}
public class TestTemplate
{
public static void main(String[] args)
{
Template template = new FilialeTemplate();
template.doTotal();
}
}
相关文章推荐
- 设计模式之模板模式(Template)
- 模板方法(Template)设计模式
- 【设计模式】使用unity实现模板模式(Template mode)
- [设计模式](十):策略模式(Strategy)与模板模式(Template)详解及二者间区别介绍(两种父子类行为模式)
- 设计模式——Template模板模式
- Template(模板)设计模式
- 二十四种设计模式:模板方法模式(Template Method Pattern)
- Java设计模式——模板模式(Template Pattern)
- java23中设计模式——行为模式——Template(模板方法)
- Java设计模式之模板(template)方法模式
- Java设计模式之模板模式(Template)在Android中的应用
- 【设计模式】—— 模板方法Template
- Java设计模式之模板模式(Template )
- 【设计模式】模板模式(Template Pattern)
- 小菜学习设计模式(一)—模板方法(Template)模式
- 设计模式之模板方法模式(Template)
- [我的设计模式] Template Pattern 模板模式
- C++设计模式十--TemplatePattern(模板方法模式)
- 设计模式—模板模式(Template Pattern)
- 设计模式——模板模式(Template Pattern)