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

模板方法模式

时间:2020-06-27 20:10:54      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:相关   bst   模板方法模式   参考资料   重新定义   pattern   eth   方案   some   

名称:

    模板方法模式(Template Method Pattern)

 

问题:

    The Template Method pattern provides a method that allows subclasses to override parts of the method without rewriting it. Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template method lets subclasses redefine certain steps of an algorithm without changing the structure of the algorithm.    

 

解决方案:

    

1、 模式的参与者

    1、AbstractClass

    -定义抽象的原语操作,具体的子类将重新定义它们以实现一个算法的各步骤

    -实现一个模版方法,定义一个算法的骨架。该模版方法不仅调用原语操作,也调用定义在AbstractClass或其他对象中的操作。

    2、ConcreteClass

    -实现原语操作以完成算法中与特定子类相关步骤。

 

2.实现方式

abstract class AbstractClass
{
    public void TemplateMethod() 
    {
        SpecificMethod();
        abstractMethod1();          
         abstractMethod2();
    }  
    public void SpecificMethod() 
    {
        System.out.println(AbstractClass special method.");
    }   
    public abstract void abstractMethod1(); 
    public abstract void abstractMethod2();
}
class ConcreteClass extends AbstractClass
{
    public void abstractMethod1()
    {
        System.out.println("concrete method1");
    }   
    public void abstractMethod2()
    {
        System.out.println("concrete method 2");
    }
}

 

参考资料

《设计模式:可复用面向对象软件的基础》

模板方法模式

标签:相关   bst   模板方法模式   参考资料   重新定义   pattern   eth   方案   some   

原文地址:https://www.cnblogs.com/diameter/p/13199343.html

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