`
youyu4
  • 浏览: 440406 次
社区版块
存档分类
最新评论

Java设计模式十二:模板方法模式(Template Method)

 
阅读更多

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.
如果你只想掌握一种设计模式,那么它就是模板方法.

类图:



 



抽象模板AbstractClass的方法分为两类:
基本方法: 也叫做基本操作,由子类实现的方法,并且在模板方法被调用.
模板方法: 可以有一个或几个, 一般是具体方法, 也就是骨架, 实现对基本方法的调度,完成固定的逻辑.
为了防止恶意操作,一般模板方法会加上final关键字,不允许被覆写。

实例:
//抽象模板
public abstract class AbstractClass
{
    protected abstract void doAnyting();

    protected abstract void doSomething();

    public void templateMethod()
    {
        doAnyting();
        doSomething();
    }
}

public class ConcreteClass1 extends AbstractClass
{
    @Override
    protected void doAnyting()
    {
        System.out.println("do class1 anything");
    }

    @Override
    protected void doSomething()
    {
        System.out.println("do class1 something");
    }
}

public class ConcreteClass2 extends AbstractClass
{
    @Override
    protected void doAnyting()
    {
        System.out.println("do class2 anything");
    }

    @Override
    protected void doSomething()
    {
        System.out.println("do class2 something");
    }
}

public class Client
{
    public static void main(final String[] args)
    {
        final AbstractClass c1 = new ConcreteClass1();
        final AbstractClass c2 = new ConcreteClass2();
        c1.templateMethod();
        c2.templateMethod();
    }
}

结果:
do class1 anything
do class1 something
do class2 anything
do class2 something

  • 大小: 5.3 KB
分享到:
评论

相关推荐

    设计模式--模板方法模式java例子

    模板方法模式是设计模式中行为型模式的一种,它在软件工程中扮演着非常重要的角色,尤其是在Java编程中。模板方法模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。它允许子类不改变一个算法的结构即可重...

    java设计模式-模板模式

    3. **模板方法(Template Method)**:这是在抽象类中定义的方法,它调用了一个或多个钩子方法(即抽象方法或可选的具体方法)。模板方法执行整体算法的顺序,并且通常在最后调用钩子方法以完成算法的定制部分。 4....

    template-method-demo 模板方法示例

    在"template-method-demo"这个示例中,我们可以预见到它将展示如何在Java中应用模板方法模式。这个压缩包可能包含以下内容: 1. 一个抽象类(例如:`AbstractClass`),它定义了模板方法。在这个类中,可能会有一个...

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    3. **行为型模式**:包括策略(Strategy)、模板方法(Template Method)、观察者(Observer)、迭代器(Iterator)、访问者(Visitor)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、...

    java23种设计模式详解+源码(绝对详解)

    - 模板方法模式(Template Method):在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 - 访问者模式(Visitor):表示一个作用于...

    JAVA设计模式-chm版

    包括责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者模式(Mediator)...Strategy)、模板方法模式(Template Method)和访问者模式(Visitor)...

    《Java设计模式》课后答案-刘伟.rar

    行为型设计模式如策略(Strategy)、模板方法(Template Method)、观察者(Observer)、命令(Command)、迭代器(Iterator)、访问者(Visitor)、状态(State)、职责链(Chain of Responsibility)、解释器...

    java设计模式ppt

    模板方法模式 (Template Method Pattern) 模板方法模式是一种行为型模式,它定义了一个操作中的算法骨架,将一些步骤延迟到子类中。模板方法让子类可以重新定义算法的某些步骤,而不改变算法的整体结构。这种模式...

    JAVA设计模式(chm版)

    3. 行为型模式:关注对象之间的交互和职责分配,如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、命令模式(Command)、迭代器模式(Iterator)、访问者模式(Visitor)、责任链...

    模板方法模式(TemplateMethod)原理图

    模板方法模式是一种行为设计模式,它在一个方法中定义算法的骨架,将一些步骤延迟到子类中实现。 具体来说,模板方法模式的关键特点包括: 抽象类:在抽象类中定义一个模板方法,该方法给出了算法的框架。 具体...

    Java设计模式26模板方法模式.pdf

    ### Java设计模式26模板方法模式 #### 模式动机 模板方法模式是基于继承机制的一种代码复用技术,它允许子类通过扩展的方式重写父类中的抽象方法,以此来实现不同子类间的差异性行为。在软件工程中,我们经常遇到...

    java设计模式PPT

    包括策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、命令模式(Command)、责任链模式(Chain of Responsibility)、备忘录模式(Memento)、状态模式...

    JAVA设计模式.pdf

    **(11)模板方法模式(Template Method)** - **定义**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 - **应用场景**:当多个子类有...

    设计模式-模板方法模式ppt

    ### 设计模式之模板方法模式解析 #### 一、引言 在软件开发过程中,我们经常面临这样的场景:有一些步骤是固定的,而某些步骤则可能因具体实现而异。为了解决这类问题,设计模式中引入了一种叫做“模板方法模式”的...

    JAVA设计模式配套光盘

    3. **行为型模式**:这类模式主要关注对象之间的交互和职责分配,比如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、访问者模式(Visitor)、责任链...

    Java设计模式之禅

    1. 模板方法模式(Template Method Pattern):在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。 2. 命令模式(Command Pattern):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化...

    java设计模式中英文各种版本打包下载 学习设计模式必备材料

    3. 行为型模式(Behavioral Patterns):如策略模式(Strategy)、模板方法模式(Template Method)、观察者模式(Observer)、迭代器模式(Iterator)、责任链模式(Chain of Responsibility)、命令模式(Command...

    java设计模式并附带源码

    - 模板方法模式(Template Method):在父类中定义算法的框架,允许子类在不改变算法结构的情况下重定义特定步骤。 - 策略模式(Strategy):定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换。 ...

Global site tag (gtag.js) - Google Analytics