当前位置:   article > 正文

JavaWeb:模板方法设计模式_在web项目使用模板方法模式

在web项目使用模板方法模式

概念

模板方法设计模式是GoF设计模式中的一种
模板方法设计模式:

  • 在模板类的模板方法当中定义核心算法骨架,具体的实现步骤可以延迟到子类当中完成。

模板类通常是一个抽象类,模板类当中的模板方法定义核心算法,这个方法通常是final的(但也可以不是final的)
模板类当中的抽象方法就是不确定实现的方法,这个不确定怎么实现的事交给子类去做。

例子

Person.java

/**
 * 模板方法设计模式
 *  1. Person就是模板方法设计模式当中的模板类
 *  2. day()方法就是模板方法设计模式当中的模板方法
 */
public abstract class Person {
    // 模板方法
    // 模板方法定义核心算法骨架,具体的实现步骤可以延迟到子类当中去实现
    // 核心算法得到了保护,且可以重复使用,另外代码得也到了复用
    public final void day() { // 添加final关键字,这个方法无法被重写
        // 起床
        wake();
        // 洗漱
        wash();
        // 吃早餐
        toHaveBreakfast();
        // 一天
        doSome();
        // 吃晚饭
        haveDinner();
        // 睡觉
        sleep();
    }

    public void wake() {
        System.out.println("起床");
    }

    public void wash() {
        System.out.println("吃饭");
    }

    public void toHaveBreakfast() {
        System.out.println("吃早餐");
    }

    public abstract void doSome();

    public void haveDinner() {
        System.out.println("吃晚餐");
    }

    public void sleep() {
        System.out.println("睡觉");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

Teacher.java

public class Teacher extends Person {
    @Override
    public void doSome() {
        System.out.println("教学");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Student.java

public class Student extends Person {
    @Override
    public void doSome() {
        System.out.println("上课");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Test.java

public class Test {
    public static void main(String[] args) {
        Person student = new Student();
        Person teacher = new Teacher();
        student.day();
        System.out.println("------");
        teacher.day();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

运行结果:

起床
吃饭
吃早餐
上课
吃晚餐
睡觉
------
起床
吃饭
吃早餐
教学
吃晚餐
睡觉
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/224279
推荐阅读
相关标签
  

闽ICP备14008679号