第116回 Interpreterパターンについて
公開日:2014-11-04 更新日:2019-05-11
1. 概要
独り言によるプログラミング講座「第116回 Interpreterパターンについて」です。
デザインパターンの1つである Interpreter パターンについて説明しています。
デザインパターンの1つである Interpreter パターンについて説明しています。
2. 動画
3. 動画中に書いたソース
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//★独り言によるプログラミング講座
//■Interpreterパターンについて
// 構文解析結果を、
// オブジェクトで表現するパターン
// 構文解析を手助けするパターンではない
// 構文 --- 簡易言語、マクロ、計算式
// 式 --- int a = (1 + 2) * 3;
}
private void button1_Click(object sender, EventArgs e)
{
IValue 式 =
new Mul(
new Add(new Value(1), new Value(2)),
new Value(3)
);
MessageBox.Show(式.getValue().ToString());
}
}
//数値の表現
interface IValue {
int getValue();
}
class Value : IValue {
int value = 0;
//コンストラクタ
public Value(int v) {
value = v;
}
public int getValue() {
return value;
}
}
class Add : IValue {
IValue value1;
IValue value2;
//コンストラクタ
public Add(IValue v1, IValue v2) {
value1 = v1;
value2 = v2;
}
public int getValue() {
return value1.getValue() + value2.getValue();
}
}
class Mul : IValue {
IValue value1;
IValue value2;
//コンストラクタ
public Mul(IValue v1, IValue v2) {
value1 = v1;
value2 = v2;
}
public int getValue() {
return value1.getValue() * value2.getValue();
}
}
}