設計模式系列
範本方法模式:定義一個操作中的演算法骨架,將一些步驟延遲到子類別中。
1.此模式可以把不變行為移轉到Super Class,並去掉子類別的重複Code來呈現出它的好處
2.一旦遇到不變和可變的行為在方法中的子類別混合再一起時候,不變行為在子類別重複出現
透過範本方法搬移到單一地方,可幫助子類別擺脫重複不變行為問題。
using System;
using System.Collections.Generic;
namespace ConsoleApp6
{
internal class Program
{
private static void Main(string[] args)
{
AbstractClass aA = new ConcreteClassA();
aA.TemplateMethod();
AbstractClass bB = new ConcreteClassB();
bB.TemplateMethod();
Console.ReadKey();
}
}
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("ConcreteClassA.PrimitiveOperation1");
}
public override void PrimitiveOperation2()
{
Console.WriteLine("ConcreteClassA.PrimitiveOperation2");
}
}
class ConcreteClassB:AbstractClass
{
public override void PrimitiveOperation1()
{
Console.WriteLine("ConcreteClassB.PrimitiveOperation1");
}
public override void PrimitiveOperation2()
{
Console.WriteLine("ConcreteClassB.PrimitiveOperation2");
}
}
}
元哥的筆記