C#模板方法模式(Template Method Pattern)實(shí)例教程
本文以一個(gè)簡(jiǎn)單的實(shí)例形式講述了C#模板方法模式的實(shí)現(xiàn)方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
這里假設(shè)要做一道紅燒肉,做法有很多,在不同的做法中都有相同的部分,比如都要放油、放肉、放調(diào)料等。也有不同之處,比如有些做法放可樂,有些做法放甜蜜醬,等等。
先提煉出一個(gè)抽象類,該類不僅有制作紅燒肉的各個(gè)步驟,而且還把各個(gè)步驟歸納到另一個(gè)方法,我們把這個(gè)方法稱作模版方法。另外,在模版方法中,對(duì)于一些不確定的方面先用抽象方法。
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(); } }
希望本文所述對(duì)大家C#程序設(shè)計(jì)的學(xué)習(xí)有所幫助。
- C# 設(shè)計(jì)模式系列教程-模板方法模式
- 詳解C#設(shè)計(jì)模式編程中的模板方法模式使用
- C#設(shè)計(jì)模式之單例模式實(shí)例講解
- c#設(shè)計(jì)模式 適配器模式詳細(xì)介紹
- C#設(shè)計(jì)模式之觀察者模式實(shí)例講解
- C#設(shè)計(jì)模式之外觀模式介紹
- 淺談c#設(shè)計(jì)模式之單一原則
- 淺談C#設(shè)計(jì)模式之代理模式
- 舉例講解C#編程中對(duì)設(shè)計(jì)模式中的單例模式的運(yùn)用
- 淺談C#設(shè)計(jì)模式之開放封閉原則
- C#設(shè)計(jì)模式之Template模板方法模式實(shí)現(xiàn)ASP.NET自定義控件 密碼強(qiáng)度檢測(cè)功能
相關(guān)文章
C#中IEnumerable接口介紹并實(shí)現(xiàn)自定義集合
這篇文章介紹了C#中IEnumerable接口并實(shí)現(xiàn)自定義集合,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04WPF使用觸發(fā)器需要注意優(yōu)先級(jí)問題解決
本文主要介紹了WPF使用觸發(fā)器需要注意優(yōu)先級(jí)問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周
這篇文章主要介紹了unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧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#實(shí)現(xiàn)計(jì)算年齡的簡(jiǎn)單方法匯總
本文給大家分享的是C#代碼實(shí)現(xiàn)的簡(jiǎn)單實(shí)用的給出用戶的出生日期,計(jì)算出用戶的年齡的代碼,另外附上其他網(wǎng)友的方法,算是對(duì)計(jì)算年齡的一次小結(jié),希望大家能夠喜歡。2015-05-05C#?使用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ì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07