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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式培训之七:模版方法

發布時間:2023/12/18 asp.net 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式培训之七:模版方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

查看本人文章索引請通過http://www.cnblogs.com/seesea125/archive/2012/04/17/2453256.html

一、定義

定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。Template Method使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。

二、應用場景

Template Method模式非常簡單,但是在面向對象系統中有著大量的應用。比如我們先提供一個父類,然后先把固定不變的算法放在父類中實現,但是一些可變的行為就先不實現它,留給子類實現。這時候我們發布出去了,如果使用者需要擴展功能,則你可以繼承這個抽象類,然后覆寫里面的抽象方法或virturl方法,再然后就調用一個類似的execute方法(父類定義好的),就完成了擴展開發,所以這個模式有著大量的應用。

另外這個模式也是把各子類的公共行為提取到父類中,避免了代碼重復。

三、代碼實現

比如模仿動物的叫聲,我們先定義一個算法的骨架,一個Animal類,這個類里,我們有一個Shout的方法,但是這個方法又從GetShout方法來獲取值,GetShout方法要延遲要子類去實現。

class Animal { public string Shout() { return GetShout(); }protected virtual string GetShout() { return ""; } }

?

兩個子類的實現

//貓叫 class Cat:Animal { protected override string GetShout() { return "喵喵"; } } //狗叫 class Dog : Animal { protected override string GetShout() { return "汪汪"; } }

?

客戶端的調用

Animal animal=new Cat(); Console.WriteLine(animal.Shout());animal = new Dog(); Console.WriteLine(animal.Shout());


四、總結

模版方法很簡單,但用途很廣,他允許我們先定義好算法骨架,然后讓具體實現由子類來實現,因此可以進行擴展開發。另外也是代碼復用的基本技術,如果代碼高度類似,可以考慮用模版方法去除重復。

轉載于:https://www.cnblogs.com/seesea125/archive/2012/06/01/2530716.html

總結

以上是生活随笔為你收集整理的设计模式培训之七:模版方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。