設計模式系列 - 模板模式
阿新 • • 發佈:2019-01-07
在模板模式中,一個抽象類公開定義了執行它的方法的方式或方法
介紹
模板模式屬於行為型模式,通過將相似的業務行為抽離出來放到抽象類中暴露給上層,然後在自己子類中實現具體的業務行為,通過模板類來約束上層的業務呼叫。
類圖描述
程式碼實現
1、定義抽象基類
public abstract class Game { public abstract void Initialize(); public abstract void StartPlay(); public abstract void EndPlay(); public void Play() { Initialize(); StartPlay(); EndPlay(); } }
2、定義業務子類
public class Cricket : Game { public override void EndPlay() { Console.WriteLine("Cricket Game Finished"); } public override void Initialize() { Console.WriteLine("Cricket Game Initialized!Start palying"); } public override void StartPlay() { Console.WriteLine("Cricket Game Started.Enjoy the game"); } } public class Football : Game { public override void StartPlay() { Console.WriteLine("Football Game Started.Enjog the game"); } public override void Initialize() { Console.WriteLine("Football Game Initialized.Start playing."); } public override void EndPlay() { Console.WriteLine("Football Game Finished."); } }
3、上層呼叫
class Program
{
static void Main(string[] args)
{
Game game = new Cricket();
game.Play();
game = new Football();
game.Play();
Console.ReadKey();
}
}
總結
模板方法類似在建造房子時先將房子的整體框架搭建後,然後具體的建築細節放到建築這個地方的時候再具體考慮,延遲的業務的構造。