日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

设计模式(二) 模板方法

發(fā)布時(shí)間:2023/12/10 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式(二) 模板方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

模板方法模式——在一個(gè)抽象類中定義一個(gè)操作中的算法骨架,而將一些步驟延遲到子類中去實(shí)現(xiàn)(對(duì)應(yīng)于我們根據(jù)自己的情況向模板填充內(nèi)容)。模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)前提下,重新定義算法的某些特定步驟,模板方法模式把不變行為搬到超類中,從而去除了子類中的重復(fù)代碼。

優(yōu)點(diǎn):?1、封裝不變部分,擴(kuò)展可變部分。 2、提取公共代碼,便于維護(hù)。 3、行為由父類控制,子類實(shí)現(xiàn)。

1 /// <summary> 2 /// 炒菜基類 3 /// </summary> 4 public abstract class CookAbstract 5 { 6 /// <summary> 7 /// 模板方法 8 /// </summary> 9 public void Cook() 10 { 11 AddOil(); 12 AddVegetables(); 13 AddSalt(); 14 } 15 16 /// <summary> 17 /// 加油 18 /// </summary> 19 public virtual void AddOil() 20 { 21 Console.WriteLine("加油"); 22 } 23 /// <summary> 24 /// 加蔬菜 25 /// </summary> 26 public abstract void AddVegetables(); 27 /// <summary> 28 /// 加鹽 29 /// </summary> 30 public virtual void AddSalt() 31 { 32 Console.WriteLine("加鹽"); 33 } 34 } 炒菜基類 1 /// <summary> 2 /// 炒土豆 3 /// </summary> 4 public class CookPotato : CookAbstract 5 { 6 public override void AddVegetables() 7 { 8 Console.WriteLine("加土豆"); 9 } 10 } 11 /// <summary> 12 /// 炒白菜 13 /// </summary> 14 public class CookCabbage : CookAbstract 15 { 16 public override void AddOil() 17 { 18 Console.WriteLine("加花生油"); 19 } 20 public override void AddVegetables() 21 { 22 Console.WriteLine("加白菜"); 23 } 24 } 炒菜子類 1 CookAbstract potato = new CookPotato(); 2 CookAbstract cabbage = new CookCabbage(); 3 4 potato.Cook(); 5 Console.WriteLine(); 6 cabbage.Cook(); 客戶端調(diào)用

結(jié)果:

?

轉(zhuǎn)載于:https://www.cnblogs.com/jasonbourne3/p/11096051.html

總結(jié)

以上是生活随笔為你收集整理的设计模式(二) 模板方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。