C#模板方法模式(Template Method Pattern)實(shí)例教程
本文以一個簡單的實(shí)例形式講述了C#模板方法模式的實(shí)現(xiàn)方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
這里假設(shè)要做一道紅燒肉,做法有很多,在不同的做法中都有相同的部分,比如都要放油、放肉、放調(diào)料等。也有不同之處,比如有些做法放可樂,有些做法放甜蜜醬,等等。
先提煉出一個抽象類,該類不僅有制作紅燒肉的各個步驟,而且還把各個步驟歸納到另一個方法,我們把這個方法稱作模版方法。另外,在模版方法中,對于一些不確定的方面先用抽象方法。
public abstract class HongShaoRou { public void MakeHongShaoRou() { You(); Rou(); Others(); TiaoLiao(); } public void You() { Console.WriteLine("放入油"); } public void Rou() { Console.WriteLine("放入肉"); } public abstract void Others(); public void TiaoLiao() { Console.WriteLine("放入調(diào)料"); } }
假如,有一種"四川紅燒肉"是放芝麻醬的。
public class SiChuangHongShaoRou : HongShaoRou { public override void Others() { Console.WriteLine("放入芝麻醬"); } }
客戶端只要調(diào)用抽象類的模版方法就可以。
class Program { static void Main(string[] args) { HongShaoRou hongShaoRou = new SiChuangHongShaoRou(); hongShaoRou.MakeHongShaoRou(); Console.ReadKey(); } }
希望本文所述對大家C#程序設(shè)計的學(xué)習(xí)有所幫助。
相關(guān)文章
C#中IEnumerable接口介紹并實(shí)現(xiàn)自定義集合
這篇文章介紹了C#中IEnumerable接口并實(shí)現(xiàn)自定義集合,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周
這篇文章主要介紹了unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04C#實(shí)現(xiàn)遠(yuǎn)程連接ORACLE數(shù)據(jù)庫的方法
這篇文章主要介紹了C#實(shí)現(xiàn)遠(yuǎn)程連接ORACLE數(shù)據(jù)庫的方法,通過自定義函數(shù)db_connection_test實(shí)現(xiàn)遠(yuǎn)程連接Oracle數(shù)據(jù)庫的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12C#?使用Fluent?API?創(chuàng)建自己的DSL(推薦)
DSL領(lǐng)域?qū)S谜Z言是描述特定領(lǐng)域問題的語言,聽起來很唬人,其實(shí)不是什么高深的東西,下面通過實(shí)例代碼介紹下C#?使用Fluent?API?創(chuàng)建自己的DSL,感興趣的朋友參考下吧2021-12-12C#實(shí)現(xiàn)目錄跳轉(zhuǎn)(TreeView和SplitContainer)的示例代碼
本文主要介紹了C#實(shí)現(xiàn)目錄跳轉(zhuǎn)(TreeView和SplitContainer)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07