第105回 Template Methodパターンについて
公開日:2014-10-29 更新日:2019-05-11
1. 概要
独り言によるプログラミング講座「第105回 Template Methodパターンについて」です。
デザインパターンの1つである Template Method パターンについて説明しています。
デザインパターンの1つである Template Method パターンについて説明しています。
2. 動画
3. 動画中に書いたソース
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//★独り言によるプログラミング講座
//■Template Methodパターンについて
// 処理の流れの形式化
// 実装方法
// 抽象クラス : メソッドのオーバーライド
// I/F : コールバック
// 勤務表、交通費精算用紙
// 形式化のメリット
// 書きやすい・余分なことを書く必要がない
// 読みやすい
// 記入漏れがなくなる
// 想定外のことが書けない
}
private void button1_Click(object sender, EventArgs e)
{
/*
Test obj = new Test();
obj.実行();
*/
経理 obj = new 経理(new TestB());
obj.実行();
}
}
//経理
abstract class ATest {
public void 実行() {
//処理
this.開始();
//処理
this.メイン();
//処理
this.終了();
//処理
}
abstract protected void 開始();
abstract protected void メイン();
abstract protected void 終了();
}
//社員
class Test : ATest {
override protected void 開始() {
MessageBox.Show("開始");
}
override protected void メイン() {
MessageBox.Show("メイン");
}
override protected void 終了() {
MessageBox.Show("終了");
}
}
interface ITest {
void 開始();
void メイン();
void 終了();
}
class TestB : ITest {
public void 開始() {
MessageBox.Show("開始");
}
public void メイン(){
MessageBox.Show("メイン");
}
public void 終了(){
MessageBox.Show("終了");
}
}
class 経理 {
TestB objTest = null;
//コンストラクタ
public 経理(TestB obj) {
objTest = obj;
}
public void 実行() {
objTest.開始();
objTest.メイン();
objTest.終了();
}
}
}