赞
踩
模板方法设计模式是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("睡觉"); } }
Teacher.java
public class Teacher extends Person {
@Override
public void doSome() {
System.out.println("教学");
}
}
Student.java
public class Student extends Person {
@Override
public void doSome() {
System.out.println("上课");
}
}
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();
}
}
运行结果:
起床
吃饭
吃早餐
上课
吃晚餐
睡觉
------
起床
吃饭
吃早餐
教学
吃晚餐
睡觉
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。