1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
namespace ConsoleApplication2 { class Program { static void Main(string[] args) { } } /* Observer インスタンスの状態が変化した場合観察者に通知*/ public interface Observer { void Update(Subject subject); } public interface Subject { void AddObserver(); void NotifyObserver(); } public class ConcreateObserver: Observer { public void Update(Subject subject) { } } public class ConcreateSubject: Subject { System.Collections.Generic.List<Observer> ObserverList = new System.Collections.Generic.List<Observer>(); ConcreateObserver co = new ConcreateObserver(); public void AddObserver() { ObserverList.Add(co); } public void NotifyObserver() { co.Update(this); } } } |