模板方法设计模式

  • Post author:
  • Post category:其他



目录


模板方法设计模式的概念及核心内容:


模板方法设计模式的具体例子:


总结


模板方法设计模式的概念及核心内容:

模板方法设计模式在实际开发中是一种使用非常广泛的设计模式,也是一种非常重要的思想。其核心内容为:通过定义一个模板类,在模板类中规定其整体的骨架并确定哪些方法是允许子类去重写,哪些不允许子类重写或者哪些必须子类重写,其目的是保证其核心算法不被破坏。定义完模板类后,写出具体的子类去继承模板类并按规定好的框架来完成子类的定义。


注:在定义模板类中的方法时,需要慎用修饰词:final、abstract。final用来可以用来定义那些不想被子类重写的方法,abstract则可以用来定义那些需要子类去具体实现的方法。


模板方法设计模式的具体例子:


定义一个模板类如下:其实际意义为老师和同学一天里做某些事都有相同的顺序,但是每一件事情又不相同。

public abstract class PeopleInSchool {
    public PeopleInSchool() {}
//定义子类不可重写的day()方法
    public final void day(){
        getup();
        eatbreakfast();
        inschool();
        eatlunch();
        classover();
        sleep();
    }
//定义子类必须重写的抽象方法
    public abstract void getup();
    public abstract void eatbreakfast();
    public abstract void inschool();
    public abstract void eatlunch();
    public abstract void classover();
    public abstract void sleep();
}

学生类:

public class Student extends PeopleInSchool{
    @Override
    public void getup() {
        System.out.println("在早上7点30起床");
    }

    @Override
    public void eatbreakfast() {
        System.out.println("在家里吃早饭");
    }

    @Override
    public void inschool() {
        System.out.println("在学校学习");
    }

    @Override
    public void eatlunch() {
        System.out.println("在食堂吃午饭");
    }

    @Override
    public void classover() {
        System.out.println("放学回家做作业");
    }

    @Override
    public void sleep() {
        System.out.println("在晚上9点睡觉");
    }
}

老师类:

public class Teacher extends PeopleInSchool{
    @Override
    public void getup() {
        System.out.println("在早上6点30起床");
    }

    @Override
    public void eatbreakfast() {
        System.out.println("在家里/食堂吃早饭");
    }

    @Override
    public void inschool() {
        System.out.println("在学校给同学们上课");
    }

    @Override
    public void eatlunch() {
        System.out.println("在食堂/家里吃午饭");
    }

    @Override
    public void classover() {
        System.out.println("放学回家批改作业");
    }

    @Override
    public void sleep() {
        System.out.println("在晚上12点睡觉");
    }
}

总结

模板方法模式是一种重要的设计模式,也代表一种抽象编程的思想。需要在之后的开发中细细去品味。感谢阅读。



版权声明:本文为yames01原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。