模板模式:通过把不变的行为搬移到父类,去除子类中重复的代码来体现模板模式的优势
抽象父类:用来定义子类需要实现的类和父类已经写完的重复代码
abstract class AbstractClass{
public abstract void operation1();
public abstract void operation2();
public void templateMethod(){
System.out.println("父类的模板方法,已经被实现");
operation1();
operation2();
}
}
子类1实现父类
class ConcreteClass1 extends AbstractClass{
@Override
public void operation1() {
System.out.println("子类1实现的方法1");
}
@Override
public void operation2() {
System.out.println("子类1实现的方法2 ");
}
}
子类2实现父类
class ConcreteClass2 extends AbstractClass{
@Override
public void operation1() {
System.out.println("子类2实现的方法1");
}
@Override
public void operation2() {
System.out.println("子类2实现的方法2 ");
}
}
public static void main(String[] args) {
new ConcreteClass1().templateMethod();
new ConcreteClass2().templateMethod();
}