在模板模式中,一個抽象類公開定義了執行它的方法的方式或方法 介紹 模板模式屬於行為型模式,通過將相似的業務行為抽離出來放到抽象類中暴露給上層,然後在自己子類中實現具體的業務行為,通過模板類來約束上層的業務調用。 類圖描述 代碼實現 1、定義抽象基類 2、定義業務子類 3、上層調用 總結 模板方法類似 ...
在模板模式中,一個抽象類公開定義了執行它的方法的方式或方法
介紹
模板模式屬於行為型模式,通過將相似的業務行為抽離出來放到抽象類中暴露給上層,然後在自己子類中實現具體的業務行為,通過模板類來約束上層的業務調用。
類圖描述
代碼實現
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();
}
}
總結
模板方法類似在建造房子時先將房子的整體框架搭建後,然後具體的建築細節放到建築這個地方的時候再具體考慮,延遲的業務的構造。