本文概述
模板模式说:“只需在操作中定义函数的框架, 然后将某些步骤推迟到其子类即可”。
好处
- 重用代码是非常常见的技术, 这只是它的主要好处。
用法
- 当应通过避免重复将子类之间的公共行为移至单个公共类中时使用。
模板模式的UML
模板模式的实现
步骤1:
创建一个Game抽象类。
//This is an abstract class.
public abstract class Game {
abstract void initialize();
abstract void start();
abstract void end();
public final void play(){
//initialize the game
initialize();
//start game
start();
//end game
end();
}
}// End of the Game abstract class.
第2步:
创建一个Chess类, 该类将扩展Game抽象类, 以为其方法提供定义。
//This is a class.
public class Chess extends Game {
@Override
void initialize() {
System.out.println("Chess Game Initialized! Start playing.");
}
@Override
void start() {
System.out.println("Game Started. Welcome to in the chess game!");
}
@Override
void end() {
System.out.println("Game Finished!");
}
}// End of the Chess class.
第三步:
创建一个Soccer类, 该类将扩展Game抽象类, 以为其方法提供定义。
//This is a class.
public class Soccer extends Game {
@Override
void initialize() {
System.out.println("Soccer Game Initialized! Start playing.");
}
@Override
void start() {
System.out.println("Game Started. Welcome to in the Soccer game!");
}
@Override
void end() {
System.out.println("Game Finished!");
}
}// End of the Soccer class.
步骤4:
创建一个TemplatePatternDemo类。
//This is a class.
public class TemplatePatternDemo {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
Class c=Class.forName(args[0]);
Game game=(Game) c.newInstance();
game.play();
}
}// End of the Soccer class.
输出:
评论前必须登录!
注册