实现模板模式有以下三个步骤:
1、在抽象类中,把固定的内容,存放到一个方法中(如final修饰的方法), 在该方法中,不确定部分,调用该抽象类中的抽象方法。
2、子类重写该抽象类的抽象方法。
3、声明抽象类引用指向具体实现的子类对象,通过抽象类引用.普通方法(或者直接new一个子类对象)。此时普通方法中的抽象方法真正执行的是该子类对象抽象后的内容。
下面通过代码来演示一下具体的实现方法
1、定义一个抽象类,里面包含固定的内容及调用不固定的抽象方法
package com.jcxy.demo05;
public abstract class LoveGame
{
//喜欢是共同的行为,但是表白的方式不一样
public final void loving()
{
System.out.println("喜欢上一个人,准备表白");
showLove();
System.out.println("表白成功!");
}
//表白方式
public abstract void showLove();
}
2、Jack子类继承抽象类并实现抽象方法
package com.jcxy.demo05;
public class Jack extends LoveGame
{
//子类具体的表白方式
public void showLove()
{
// TODO Auto-generated method stub
System.out.println("写信表白");
}
}
3、Rose子类继承抽象类并实现抽象方法
package com.jcxy.demo05;
public class Rose extends LoveGame
{
//子类具体的表白方式
public void showLove()
{
// TODO Auto-generated method stub
System.out.println("当面表白");
}
}
4、测试类
package com.jcxy.demo05;
public class Test
{
public static void main(String[] args)
{
//Jack的表白方式
LoveGame lg = new Jack();
lg.loving();
Jack j = new Jack();
j.loving();
//Rose的表白方式
LoveGame lg1 = new Rose();
lg1.loving();
}
}
打印输出:
喜欢上一个人,准备表白
写信表白
表白成功!
喜欢上一个人,准备表白
写信表白
表白成功!
喜欢上一个人,准备表白
当面表白
表白成功!