舉個例子:我們寫HTML的時候,先寫head然後寫body,這樣完成了一個空HTML頁面的架子,我們的這一系列行為就是一個模板。模板模式中,首先會定義一個抽象類來宣告這個事件模板,子類實現並被呼叫。也是很簡單的一個設計模式。
JDBC就是用到了模板模式:
Game.class
抽象類。定義模板。
public abstract class Game {
abstract void init();
abstract void start();
abstract void end();
/**
* 方法必須是final ,固定的模板不允許改變
*/
public final void play(){
init();
start();
end();
}
}
複製程式碼
play()
就是我定義的模板,子類繼承後必須實現該具體功能。
LoL.java
public class LoL extends Game{
@Override
void init() {
System.out.println("LOL initialize ....");
}
@Override
void start() {
System.out.println("LOL starting....");
}
@Override
void end() {
System.out.println("LOL ending...");
}
}
複製程式碼
Dota.java
public class Dota extends Game{
@Override
void init() {
System.out.println("Dota initialize ....");
}
@Override
void start() {
System.out.println("Dota starting....");
}
@Override
void end() {
System.out.println("Dota ending...");
}
}
複製程式碼
Main.java
public class Main {
public static void main(String[] args) {
Game game= new LoL();
game.play();
game = new Dota();
game.play();
}
}
複製程式碼
控制檯列印:
LOL initialize ....
LOL starting....
LOL ending...
Dota initialize ....
Dota starting....
Dota ending...
複製程式碼