模板方法是一種常見的設計模式,它定義一個操做中的算法的骨架,而將一些步驟延遲到子類中。模板使得子類能夠不改變一個算法的結構便可重定義該算法的某些特定步驟。算法
UML圖:設計模式
具體實現代碼:ide
namespace TemplateMethod { class Program { static void Main(string[] args) { AbstractClass A = new ConcreteClassA(); A.TemplateMethod(); AbstractClass B = new ConcreteClassB(); B.TemplateMethod(); Console.ReadKey(); } } public abstract class AbstractClass { public abstract void PrimitiveOperation1(); public abstract void PrimitiveOperation2(); public void TemplateMethod() { PrimitiveOperation1(); PrimitiveOperation2(); Console.WriteLine(""); } } class ConcreteClassA : AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("具體類A.方法1實現"); } public override void PrimitiveOperation2() { Console.WriteLine("具體類A.方法2實現"); } } class ConcreteClassB : AbstractClass { public override void PrimitiveOperation1() { Console.WriteLine("具體類B.方法1實現"); } public override void PrimitiveOperation2() { Console.WriteLine("具體類B.方法2實現"); } } }
模版方法模式的特色:spa
模版方法模式是經過把不變的行爲搬移到父類,去除子類中的重複代碼來體現它的優點。設計
模版方法模式就是提供了一個很好的代碼複用平臺。code
當不變的和可變的行爲在方法的子類實現中混合在一塊兒的時候, 不變的行爲就會在子類中重複出現。咱們經過模版方法模式把這些行爲搬移到單一的地方,這樣就幫助子類擺脫重複的不變行爲的糾纏。blog