设计模式——模板方法模式

Posted boycelee

tags:

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

  • 模板方法定义

    定义一个模板,在父类中抽象部分方法,实现部分方法。将部分方法放在子类来实现,使得子类不改变结构即可重新定义某些特定步骤。

  • 方法角色

    (1)基本方法
    基本方法,由子类自己去实现
    (2)模板方法
    具体方法,实现对基本方法的调度,完成固定逻辑。

  • 模板方法的使用场景

    我们在日常开发中可能会遇到类似情况,某个方法实现需要一系列步骤。

例如:我们要造一把机械键盘,需要制作的东西有键帽,键轴,背光类型。

(1)抽象基类(键帽,键轴,背光类型等制作由子类去控制)
(2)制作键盘的过程固定下来由抽象基类去实现

  • UML类图

    技术分享图片
    package Template;

/**
 * Created by jianw.li on 2017/12/11.
 */
public abstract class AbstractKeyboard {

    /**
     * 制作键帽
     */
    protected abstract void makeKeyCap();

    /**
     * 制作键轴
     */
    protected abstract void makeKeySwitches();

    /**
     * 制作键盘灯
     */
    protected abstract void makeLighting();

    /**
     * 不允许改变父类方法
     */
    final public void makeKeyboard() {

        /**
         * 调用制造键盘基本方法
         */
        this.makeKeyCap();
        this.makeKeySwitches();
        this.makeLighting();
    }

}
    public class KeyboardI extends AbstractKeyboard {
    protected void makeKeyCap() {

    }

    protected void makeKeySwitches() {

    }

    protected void makeLighting() {

    }
}
    public class KeyboardII extends AbstractKeyboard {

    protected void makeKeyCap() {

    }

    protected void makeKeySwitches() {

    }

    protected void makeLighting() {

    }
}
    public class KeyboardIII extends AbstractKeyboard{

    protected void makeKeyCap() {

    }

    protected void makeKeySwitches() {

    }

    protected void makeLighting() {

    }
}
  • 优点

    封装部分不可变,扩招可变
    提取公共方法,利于维护
    行为父类控制,子类实现






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

设计模式之模板方法模式代码示例

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

行为型设计模式之模板方法模式

Spring针对事务处理提供哪两种事务编程模式。

设计模式之模板方法模式(Template Method)详解及代码示例

设计模式之模板方法模式实战解析