码迷,mamicode.com
首页 > 其他好文 > 详细

编程模式之模板方法模式(Template Method)

时间:2016-12-29 06:53:21      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:err   nbsp   system   .com   static   分享   blog   子类   main   

模板方法模式由两个角色组成:父类角色,子类角色

父类角色:提供模板。

子类角色:为父类模板提供实现。

 

类图:

技术分享

 

JAVA代码:

 

AbstractClass.java

package com.templatemethod;

public abstract class AbstractClass
{
    /**
     * 定义了算法的骨架,即步骤
     */
    public void template()
    {
        this.method1();
        this.method2();
        this.method3();
    }
    
    /**
     * 子类可以重写这些方法
     */
    public abstract void method1();
    public abstract void method2();
    public abstract void method3();
}

ConcreteClass.java

package com.templatemethod;

public class ConcreteClass extends AbstractClass
{

    @Override
    public void method1()
    {
        System.out.println("Step 1");
    }

    @Override
    public void method2()
    {
        System.out.println("Step 2");
    }

    @Override
    public void method3()
    {
        System.out.println("Step 3");
    }

}

Test.java

package com.templatemethod;


public class Test
{
    public static void main(String[] args)
    {
        AbstractClass ac = new ConcreteClass();
        ac.template();
    }
    
}

 

 

总结:模板方法模式,定义一个操作中的算法骨架,而将一些步骤延迟到子类中去实现,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。这里需要复用的是算法的结构,也就是步骤,而每个步骤的实现可以在子类中完成。

 

编程模式之模板方法模式(Template Method)

标签:err   nbsp   system   .com   static   分享   blog   子类   main   

原文地址:http://www.cnblogs.com/justmehyp/p/6230668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!