一,咱們爲何須要模板設計模式?設計模式
在程序設計中,可能每一個對象都有共同的地方,而此時若是每一個對象定義一次,以下例子,每一個對象都寫Stay()方法,這樣在每一個類中都有不少相同的代碼,此時,咱們須要用到模板設計模式,來解決這個問題ide
二,模板設計模式思路:是把相同的部分抽象出來到抽象類中去定義,具體子類來繼承抽象類,並實現抽象類中的抽象方法,從而達到具體實現的不一樣部分,這個思路也正式模板方法的實現精髓所在。spa
三,以下例子:設計
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _13.模板方法模式 { //模板設計模式 //在程序設計中,可能每一個對象都有共同的地方,而此時若是每一個對象定義一次,以下,每一個對象都寫Stay方法,這樣在每一個類中都有不少相同的代碼 //此時,咱們須要用到模板設計模式,來解決這個問題 //模板設計模式思路:是把相同的部分抽象出來到抽象類中去定義,具體子類來繼承抽象類,並實現抽象類中的抽象方法,從而達到具體實現的不一樣部分,這個思路也正式模板方法的實現精髓所在 class Program { static void Main(string[] args) { People p = new Chinese(); People p2 = new English(); } } public abstract class People { public People() { Stay(); Console.WriteLine("咱們是人類"); Country(); Say(); } protected void Stay() { Console.WriteLine("我住在地球"); } public abstract void Country(); public abstract void Say(); } public class Chinese : People { public override void Country() { Console.WriteLine("我是中國人"); } public override void Say() { Console.WriteLine("咱們說中文"); } } public class English : People { public override void Country() { Console.WriteLine("We are English"); } public override void Say() { Console.WriteLine("We speak English"); } } }
三,咱們將共用定義爲protected,這樣只有繼承時才能夠調用這個共用模板代碼對象