第111回 Visitorパターンについて
公開日:2014-10-31 更新日:2019-05-13
1. 概要
独り言によるプログラミング講座「第111回 Visitorパターンについて」です。
デザインパターンの1つである Visitor パターンについて説明しています。
デザインパターンの1つである Visitor パターンについて説明しています。
2. 動画
3. 動画中に書いたソース
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//★独り言によるプログラミング講座
//■Visitorパターンについて
// 複数のクラスの処理を一元管理
}
private void button1_Click(object sender, EventArgs e)
{
//メイン処理
List<ITest> list = new List<ITest>();
list.Add(new 丸());
list.Add(new 三角());
list.Add(new 四角());
Visitor visitor = new Visitor();
foreach (var obj in list) {
obj.setVisitor(visitor);
}
}
}
interface IVisitor {
void 実行する(丸 maru);
void 実行する(三角 maru);
void 実行する(四角 maru);
}
class Visitor : IVisitor {
public void 実行する(丸 maru) {
MessageBox.Show(maru.name);
}
public void 実行する(三角 sankaku) {
MessageBox.Show(sankaku.name);
}
public void 実行する(四角 shikaku) {
MessageBox.Show(shikaku.name);
}
}
interface ITest {
void setVisitor(IVisitor obj);
}
class 丸 : ITest{
public String name = "丸";
public void setVisitor(IVisitor obj) {
obj.実行する(this);
}
}
class 三角 : ITest{
public String name = "三角";
public void setVisitor(IVisitor obj) {
obj.実行する(this);
}
}
class 四角 : ITest{
public String name = "四角";
public void setVisitor(IVisitor obj) {
obj.実行する(this);
}
}
}