1. 程式人生 > >設計模式系列 - 模板模式

設計模式系列 - 模板模式

在模板模式中,一個抽象類公開定義了執行它的方法的方式或方法

介紹

模板模式屬於行為型模式,通過將相似的業務行為抽離出來放到抽象類中暴露給上層,然後在自己子類中實現具體的業務行為,通過模板類來約束上層的業務呼叫。

類圖描述

程式碼實現

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();
    }
}

總結

模板方法類似在建造房子時先將房子的整體框架搭建後,然後具體的建築細節放到建築這個地方的時候再具體考慮,延遲的業務的構造。