舉個例子:咱們寫HTML的時候,先寫head而後寫body,這樣完成了一個空HTML頁面的架子,咱們的這一系列行爲就是一個模板。模板模式中,首先會定義一個抽象類來聲明這個事件模板,子類實現並被調用。也是很簡單的一個設計模式。java
JDBC就是用到了模板模式:設計模式
抽象類。定義模板。bash
public abstract class Game {
abstract void init();
abstract void start();
abstract void end();
/**
* 方法必須是final ,固定的模板不容許改變
*/
public final void play(){
init();
start();
end();
}
}
複製代碼
play()
就是我定義的模板,子類繼承後必須實現該具體功能。ide
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...");
}
}
複製代碼
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...");
}
}
複製代碼
public class Main {
public static void main(String[] args) {
Game game= new LoL();
game.play();
game = new Dota();
game.play();
}
}
複製代碼
控制檯打印:spa
LOL initialize ....
LOL starting....
LOL ending...
Dota initialize ....
Dota starting....
Dota ending...
複製代碼