这篇博客通过一个抽象类的例子来学习一下模板方法设计模式。
模板方法设计模式:定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。
public class AbstractAppDemo {
public static void main(String args[])
{
//抽象类用其子类实例化
LingjiuPalace lp = new Shemale("小白");
System.out.println("小白应聘灵鹫宫宫女仪式正式开始");
lp.action();
}
}
abstract class LingjiuPalace{
//抽象类的精髓
//招聘活动
public void action(){
//调用了自己的抽象方法,将该方法的实现延迟到
//子类中去实现
if (competition())
{
System.out.println("恭喜你,加入灵鹫宫");
}
else {
System.out.println("Sorry,学艺不精");
}
}
//比赛方法
public abstract boolean competition();
}
class Shemale extends LingjiuPalace{
private String name;
public Shemale(String name)
{
this.name=name;
}
@Override
public boolean competition() {
System.out.println("我是"+name);
System.out.println("比赛开始,成不成功,听天由命");
Random r = new Random();
return r.nextBoolean();
}
}