java 之 模板模式(大话设计模式)

模板模式,我们很多人都用过,而且大家都比较喜欢这个模式,先看一下类图

大话设计模式-类图

作为一个程序员,不懂得“偷懒“,在笔者看来不是很合格哦!当我们编写程序时,发现很多个类所走的流程基本一致,只是少部分差异,这时我们就需要考虑模板模式,来减少重复代码,这样做的好处,不仅仅减少了代码,而且对于主体流程的管控,也是比较严格。

看下demo:

/**
 * 抽象父类
 */
public abstract class AbstractProblem {

    public void tempProblem() {
        answerA();
        answerB();
        System.out.println("结束");
    }

    public abstract void answerA();

    public abstract void answerB();
}
/**
 * 学生1
 */
public class Student1 extends AbstractProblem {

    @Override
    public void answerA() {
        System.out.println("A");
    }

    @Override
    public void answerB() {
        System.out.println("A");
    }
}
/**
 * 学生2
 */
public class Student2 extends AbstractProblem {

    @Override
    public void answerA() {
        System.out.println("D");
    }

    @Override
    public void answerB() {
        System.out.println("D");
    }
}
/**
 * 客户端
 */
public class Test {

    public static void main(String[] args) {
        Student1 st1 = new Student1();
        st1.tempProblem();

        Student2 st2 = new Student2();
        st2.tempProblem();
    }
}

输出结果:

A
A
结束
D
D

到现在为止,笔者已经看了很多次设计模式,第一次看设计模式时,看每一个模式都需要很认真的思考几次,才能明白其精髓所在,并思考这个设计模式可以优化现有的哪些代码,

不过当笔者看到这个设计模式时,忽然意识到,原来我一直在使用这个模板设计模式。

以上是笔者对模板模式的理解,希望能帮助学习的小伙伴!共同进步!

posted @ 2017-11-29 17:10  红尾巴的猪  阅读(396)  评论(0编辑  收藏  举报