概述:
模板设计的模式的核心思想:
1,抽象类中的非抽象方法用来定义程序执行的流程
2,抽象类中的抽象方法是整个流程中的各个组成部分,子类进行具体的实现.
花哥夜生活的整个流程: 1,和兄弟们集合(固定就是开车,花哥一步也不想走,所以就正普通的方法) 2,吃饭(吃什么每次花哥都想换换花样,所以是抽象方法) 3,喝酒(吃完饭第二场必须再喝点,在哪喝花哥通常也要每次都换换,所以也是抽象的) 4,推油(这个是花哥的最爱,必须每次都要换换花样) 那么对应到java程序,以上步骤中所有每次都需要改变的项目都定义成抽象的方法, 花哥每次都要对这些步骤做个性化的安排,所以每次都重写就好了.代码演示 模板抽象类
public abstract class OneNightOfFlower {
public void haveHun() {
// 0,集合
getTogether();
// 1,先吃个饭
eat();
// 2,再去喝点
drink();
// 3,再洗个澡
takeAmazingBath();
}
private void getTogether() {
System.out.println("集合");
}
protected abstract void takeAmazingBath();
protected abstract void drink();
protected abstract void eat();
}
子类实现
public class TonightOfFlower extends OneNightOfFlower {
@Override
protected void takeAmazingBath() {
System.out.println("推油");
}
@Override
protected void drink() {
System.out.println("喝白的");
}
@Override
protected void eat() {
System.out.println("吃海鲜");
}
}
测试类
public class TonightOfFlowerTest {
public static void main(String[] args) {
// 重写了模板类的子类
TonightOfFlower tonightOfFlower = new TonightOfFlower();
// 调用父类的方法
tonightOfFlower.haveHun();
}
}



