復習したのでメモ。
Mediator
mediatorは状態が変更された時にmediator自身に変更を通知するオブジェクトを返す。
実装のイメージ。コンパイルは通らない。
class mData{ Mediator mediator; change(){ mediator.notify(); } } class Mediator { mData mData; Mediator(){ mData = new mData(); mData.mediator = this; } notify(){ //mDataから通知がくる } } Mediator m = new Mediator(); mData d = m.mData; d.change(); // notifyが呼ばれる
Observer
observerはオブジェクトを操作した時、登録しておいたobserverに通知する。
class Observer{ notify( Worker w ){ //通知がくる } } class Worker{ Observer observer; work(){ observer.notify( this ); } } Worker w = new Worker(); Observer o = new Observer(); w.observer = o; w.work(); //通知が呼ばれる
イメージだけ。
複数のオブジェクトから通知が欲しい( Mediator )、複数のオブジェクトに通知をする( Observer ) 。のようなイメージ。