1.定义:定义一个操作中算法的骨架,而将可变部分的实现延迟到子类中。
注:模板方法设计模式使得子类在不改变算法结构的基础上重新定义该算法的某些特定的步骤。
2.代码示例
//模板方法设计模式
import java.util.Random;
public class TemplateMethod
{
public static void main(String[] args)
{
Game game = new Friend();
//game.paly();
//替换game.paly();
if(game instanceof Friend)
{
Friend friend = (Friend)game;
friend.play();
}
Game g = new Partner();
g.play();
}
}
abstract class Game
{
public void play()
{
System.out.println("游戏开始!");
System.out.println("结果:");
if(result())
{
System.out.println("恭喜你,你赢了!");
}
else
{
System.out.println("很遗憾,你输了!");
}
}
public abstract boolean result();
}
class Friend extends Game
{
public boolean result()
{
Random random = new Random();
return random.nextBoolean();
}
}
class Partner extends Game
{
public boolean result()
{
return false;
}
}