模板方法模式
父类定义一些模板方法,一些方法需要在子类中实现。使得子类在不改变父类模板的情况下,重新定义某些方法的步骤。
1. 抽象类
定义一些模板方法,有的方法在本类中实现,有的方法需要在子类中实现。
package com.wx.demo01;
//抽象类
public abstract class AbstractClass {
//模板方法
public void TemplateMethod(){
SpecficMethod();
abstractMethod1();
abstractMethod2();
}
//具体方法
public void SpecficMethod(){
System.out.println("抽象类中的具体方法被调用");
}
//抽象方法1
public abstract void abstractMethod1();
//抽象方法2
public abstract void abstractMethod2();
}
2.具体子类
继承父类,实现父类中一些未实现的方法。
package com.wx.demo01;
public class ConcreteClass extends AbstractClass {
public void abstractMethod1() {
System.out.println("抽象方法1的实现被调用");
}
public void abstractMethod2() {
System.out.println("抽象方法2的实现被调用");
}
}
3.测试类
package com.wx.demo01;
public class TemplateMethodPattern {
public static void main(String[] args) {
AbstractClass tm = new ConcreteClass();
tm.TemplateMethod();
}
}
4.测试结果