其他分享
首页 > 其他分享> > 模板方法模式(Template Method)

模板方法模式(Template Method)

作者:互联网

解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用

模板类的创建

/**
 * 
 * 这是我们创建的一个模板类
 * 
 * 举例:1.做任何事都开始的准备阶段(step1)
 *      2.准备完成后,都要实施,不同的事情不同的实施方法(step2和step4),
 *      所以将实施阶段的操作留给用户自己实现。(step3模板提供)
 *      3.完成后庆功(step5)
 * ---------------------------------------------------------------------------------
 * 按照传统方式,用户需要自己定义runApp的方法,
 * 但在模板方法模式中,模板定义,用户只需要实现step2和step4的方法,并调用模板中的runApp即可,简化用户开发
 * 
 */

public abstract class TemplateM {

    public boolean isRunStep2;
    

    private void step1() {

        System.out.println("这是模板提供的步骤一");
    }

    private void step3() {

        System.out.println("这是模板提供的步骤三");
    }

    private void step5() {

        System.out.println("这是模板提供的步骤五");

    }


    public abstract void step2();

    public abstract void step4();

    public void runApp() {
        step1();
        if (isRunStep2) {
            step2();
            step3();
        } else {
            step4();
        }
        step5();
    }
}

用户重写模板类中的方法 并调用模板

public class Dosthing extends TemplateM {
//重写step2方法
    @Override
    public void step2() {
        System.out.println("用户实现了step2");
    }
//重写step4方法
    @Override
    public void step4() {
        System.out.println("用户实现了step4");
    }
//调用runApp方法
    public static void main(String[] args) {
        TemplateM tm = new Dosthing();
//isRunStep2 设置为true时走step2方法
        tm.isRunStep2 = true;
        tm.runApp();

        System.out.println("----------------------");
//isRunStep2 设置为false时走step4方法
        tm.isRunStep2 = false;
        tm.runApp();

    }
}

运行结果

标签:void,public,step4,step2,Template,方法,Method,模板
来源: https://www.cnblogs.com/love-xk/p/13150458.html