第110回 Observerパターンについて
公開日:2014-10-29 更新日:2019-05-13
1. 概要
独り言によるプログラミング講座「第110回 Observerパターンについて」です。
デザインパターンの1つである Observer パターンについて説明しています。
デザインパターンの1つである Observer パターンについて説明しています。
2. 動画
3. 動画中に書いたソース
namespace WindowsFormsApplication1
{
public partial class Form1 : Form, IValueChange
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//★独り言によるプログラミング講座
//■Observerパターンについて
// イベント、リスナー
// 仕組み:コールバック
//利用者(イベント受ける人) -> Form1
// イベント受け取る事前登録
// イベント処理
//Observer(イベント発生させる人) -> Counter
// イベント発生する
//イベント登録
_counter.addListener(this);
}
Counter _counter = new Counter();
private void button1_Click(object sender, EventArgs e)
{
//MessageBox.Show("test");
//_counter.Value = _counter.Value + 1;
_counter.increment();
}
//イベント処理
public void valueChange(int value) {
MessageBox.Show(value.ToString());
}
}
class Counter {
List<IValueChange> _list = new List<IValueChange>();
private int _value = 0;
public int Value {
get {
return _value;
}
set {
_value = value;
イベント発生させる();
}
}
public void increment() {
_value++;
イベント発生させる();
}
//イベントを受け取る登録
public void addListener(IValueChange obj) {
_list.Add(obj);
}
private void イベント発生させる() {
foreach (IValueChange obj in _list) {
obj.valueChange(_value);
}
}
}
//イベント
interface IValueChange {
void valueChange(int value);
}
}