詳解C#設計形式編程中的模板辦法形式應用。本站提示廣大學習愛好者:(詳解C#設計形式編程中的模板辦法形式應用)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解C#設計形式編程中的模板辦法形式應用正文
1、引言
提到模板,年夜家確定難免想到生涯中的“簡歷模板”、“論文模板”、“Word中模版文件”等,在實際生涯中,模板的概念就是——有一個劃定的格局,然後每一個人都可以依據本身的需求或情形去更新它,例如簡歷模板,下載上去的簡歷模板的格局都是雷同的,但是我們下載上去簡歷模板以後我們可以依據本身的情形填充分歧的內容要完成屬於本身的簡歷。在設計形式中,模板辦法形式中模板和生涯中模板概念異常相似,上面讓我們就具體引見模板辦法的界說,年夜家可以依據生涯中模板的概念來懂得模板辦法的界說。
2、模板辦法形式具體引見
2.1 模板辦法形式的界說
模板辦法形式——在一個籠統類中界說一個操作中的算法骨架(對應於生涯中的年夜家下載的模板),而將一些步調延遲到子類中去完成(對應於我們依據本身的情形向模板填充內容)。模板辦法使得子類可以不轉變一個算法的構造條件下,從新界說算法的某些特定步調,模板辦法形式把不變行動搬到超類中,從而去除子類中的反復代碼。
2.2 模板辦法形式的完成
在這裡以完成一個公司的薪資體系為例引見一下模板辦法的運用。
起首界說籠統類,普通建議將籠統的操作界說為非虛public辦法,將子類須要界說的特定步調界說為籠統的protected辦法。
publicabstractclass Employee { publicvoid GetSalary() { GetBasicSalary(); AddBonus(); } protectedabstractvoid GetBasicSalary(); protectedabstractvoid AddBonus(); }
接著分離完成司理和CEO的薪資
publicclass Manager : Employee { protectedoverridevoid GetBasicSalary() { Console.WriteLine("Get Manager Basic Salary"); } protectedoverridevoid AddBonus() { Console.WriteLine("Add Manager Bonus"); } } publicclass CEO : Employee { protectedoverridevoid GetBasicSalary() { Console.WriteLine("Get CEO Basic Salary"); } protectedoverridevoid AddBonus() { Console.WriteLine("Add CEO Bonus"); } }
2.3 模板辦法形式的構造圖
模板辦法是一種罕見的設計形式,它界說一個操作中的算法的骨架,而將一些步調延遲到子類中。模板使得子類可以不轉變一個算法的構造便可重界說該算法的某些特定步調。
模板辦法的構造圖以下
模板辦法形式中觸及了兩個腳色:
(1)籠統模板腳色(Vegetable飾演這個腳色):界說了一個或多個籠統操作,以便讓子類完成,這些籠統操作稱為根本操作。
(2)詳細模板腳色(ChineseCabbage和Spinach飾演這個腳色):完成父類所界說的一個或多個籠統辦法。
3、模板辦法形式的優缺陷
上面讓我們持續剖析下模板辦法的優缺陷。
1.長處:完成了代碼復用,可以或許靈巧應對子步調的變更,相符開放-關閉准繩。
2.缺陷:由於引入了一個籠統類,假如詳細完成過量的話,須要用戶或開辟人員須要花更多的時光去理清類之間的關系。
附:在.NET中模板辦法的運用也許多,例如我們在開辟自界說的Web控件或WinForm控件時,我們只須要重寫某個控件的部門辦法。
4、總結
到這裡,模板辦法的引見就停止了,模板辦法形式在籠統類中界說了算法的完成步調,將這些步調的完成延遲到詳細子類中去完成,從而使一切子類復用了父類的代碼,所以模板辦法形式是基於繼續的一種完成代碼復用的技巧。