- 範本方法模式是透過把不變行為搬移到超類別,去除子類別中的重複程式法來表現它的優勢
- 當不變的和可變的行為在方法的子類別實現中混合在一起的時候,不變的行為就會在子類別中重複出現。我們透過範本方法模式把這些行為搬移到單一的地方,這樣就幫助子類別擺脫重複的不變行為的糾纏。
using System;
namespace DPExample
{
class TestPaper
{
public void TestQuestion1()
{
Console.WriteLine ("楊過得到,後來給了郭靖,鍊成倚天劍、屠龍刀的玄鐵可能是[ ] a.球磨鑄鐵 b.馬蹄鐵 c.高速合金鋼 d.碳素纖維");
Console.WriteLine ("答案是:" + Answer1());
}
public void TestQuestion2()
{
Console.WriteLine ("楊過、程英、路無雙剷除了情花,造成[ ] a.使這種植物不再害人 b.使一種珍稀物種滅絕 c.破壞了那個生物圈的生態平衡 d.造成該地區沙漠化");
Console.WriteLine ("答案是:" + Answer2());
}
public void TestQuestion3()
{
Console.WriteLine ("藍鳳凰致使華山師徒、桃谷六仙嘔吐不止,如果你是大夫,會給他們開什麼藥[ ] a.阿司匹林 b.牛黃解毒片 c.氟呱酸 d.讓他們喝大量的生牛奶 e.以上全不對");
Console.WriteLine ("答案是:" + Answer3());
}
protected virtual string Answer1() { return ""; }
protected virtual string Answer2() { return ""; }
protected virtual string Answer3() { return ""; }
}
class TestPaperA : TestPaper
{
protected override string Answer1()
{
return "b";
}
protected override string Answer2()
{
return "c";
}
protected override string Answer3()
{
return "a";
}
}
class TestPaperB : TestPaper
{
protected override string Answer1()
{
return "c";
}
protected override string Answer2()
{
return "a";
}
protected override string Answer3()
{
return "a";
}
}
}

留言
張貼留言