模板方法模式

Posted diameter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板方法模式相关的知识,希望对你有一定的参考价值。

名称:

    模板方法模式(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");
    }
}

 

参考资料

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

以上是关于模板方法模式的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段1——vue主模板

VSCode自定义代码片段2——.vue文件的模板

VSCode自定义代码片段(vue主模板)

VS Code配置snippets代码片段快速生成html模板,提高前端编写效率

设计模式模板方法模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )