標籤:blog ar sp for on 資料 2014 art log
模板方法模式(Template Method)c#簡單例子
要點:骨架、步驟延遲到子類
例子建立玩家骨架部分,具體動作由延遲到子類去做
namespace adapterpattern{ public partial class TemplateMethodForm : Form { public TemplateMethodForm() { InitializeComponent(); } private void btndisplay_Click(object sender, EventArgs e) { Play p1 = new play1(); p1.Run(); listBox1.Items.Add(BaseData.DisplayString); Play p2 = new play2(); BaseData.DisplayString = ""; p2.Run(); listBox1.Items.Add(BaseData.DisplayString); } } public static class BaseData//資料中轉站 { public static string DisplayString { get; set; } public static int EnemyNumber { get; set; } } public abstract class Play//模板 { //骨架 protected abstract void start(); protected abstract void move(); protected abstract void stop(); public void Run() { start();//延遲到子類 move(); stop(); } } public class play1 : Play//實現模板方法1 { protected override void start() { BaseData.DisplayString += "玩家1開始運行...."; } protected override void move() { BaseData.DisplayString += "移動......."; } protected override void stop() { BaseData.DisplayString += "停止運行....."; } } public class play2 : Play//實現模板方法1 { protected override void start() { BaseData.DisplayString += "玩家2開始運行...."; } protected override void move() { BaseData.DisplayString += "移動......."; } protected override void stop() { BaseData.DisplayString += "停止運行....."; } }}
模板方法模式(Template Method)c#簡單例子