static void ObserverTester() { #region sample 1 // Configure Observer pattern var s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); // Change subject and notify observers s.SubjectState = "ABC"; s.Notify(); #endregion #region sample 2 // Create IBM stock and attach investors var ibm = new IBM("IBM", 120.00); ibm.Attach(new Investor("Sorros")); ibm.Attach(new Investor("Berkshire")); // Fluctuating prices will notify investors ibm.Price = 120.10; ibm.Price = 121.00; ibm.Price = 120.50; ibm.Price = 120.75; #endregion }
public void Send2Signals_WithSomeClient_MustBeUpdateAtSecondSignal() { var testSubject = new ConcreteSubject() { SubjectState = "signal1" }; var observer1 = new ConcreteObserver(testSubject, "observer1"); var observer2 = new ConcreteObserver(testSubject, "observer2"); var observer3 = new ConcreteObserver(testSubject, "observer3"); testSubject.Attach(observer1); testSubject.Attach(observer2); testSubject.Attach(observer3); testSubject.Notify(); Assert.Equal("signal1", observer1.GetState()); Assert.Equal("signal1", observer2.GetState()); Assert.Equal("signal1", observer2.GetState()); testSubject.SubjectState = "signal2"; testSubject.Notify(); Assert.Equal("signal2", observer1.GetState()); Assert.Equal("signal2", observer2.GetState()); Assert.Equal("signal2", observer2.GetState()); }
static void Main(string[] args) { #region ////Cat Mouse Owner and child //Cat cat = new Cat("Tom"); //Observer mouse = new Mouse("Jerry", cat); //Observer master = new Master(cat); //Observer1 baby = new Baby(cat); //cat.Cry(); //Console.Read(); #endregion #region For observer pattern structure ConcreteSubject subject = new ConcreteSubject(); subject.Attach(new ConcreteObserver(subject, "Observer A")); subject.Attach(new ConcreteObserver(subject, "Observer B")); subject.Attach(new ConcreteObserver(subject, "Observer C")); subject.SubjectState = "Ready"; subject.Notify(); #endregion Console.Read(); }
static void Main1802() { Console.WriteLine("Hello Observer Pattern!"); string path1 = "machine_name"; string path2 = "C$"; string path = System.IO.Path.Combine("\\\\", path1, path2); var subject = new ConcreteSubject("PrisonBreakGroup"); // Step2.定义4个观察者对象 IObserver playerA = new Player("Mical"); subject.Attach(playerA); IObserver playerB = new Player("Linken"); subject.Attach(playerB); IObserver playerC = new Player("Jim"); subject.Attach(playerC); IObserver playerD = new Player("Norwa"); subject.Attach(playerD); // Step3.当某盟友遭受攻击 playerA.BeAttacked(subject); Console.ReadLine(); }
static void Main(string[] args) { ConcreteSubject subject = new ConcreteSubject(); subject.Attach(new ConcreteObserver(subject)); subject.Attach(new ConcreteObserver(subject)); subject.State = "New State"; subject.Notify(); }
public static void ClientMain() { ConcreteSubject subject = new ConcreteSubject(); subject.Attach(new ConcreteObserver()); subject.Attach(new ConcreteObserver()); subject.State = "Some state"; subject.Notify(); }
public ObserverTest() { _subject = new ConcreteSubject(); _observerA = new ConcreteObserverA(_subject); _observerB = new ConcreteObserverB(_subject); _subject.Attach(_observerA); _subject.Attach(_observerB); }
public static void Test() { var concreteSubject = new ConcreteSubject("state 1"); concreteSubject.Attach(new ConcreteObserver("1")); concreteSubject.Attach(new ConcreteObserver("2")); concreteSubject.State = "state 2"; concreteSubject.State = "state 3"; }
public ConcreteSubject SubjectObserver() { ConcreteSubject concreteSubject = new ConcreteSubject(); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "X")); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "Y")); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "Z")); return(concreteSubject); }
public static void PublishPattern() { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); s.SubjectState = "ABC"; s.Notify(); Console.Read(); }
static void Main() { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); s.SubjectState = "ABC"; s.Notify(); Console.ReadKey(); }
public void ExecuteObserverStandard() { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); s.SubjectState = "ABC"; s.Notify(); }
private static void TestSample() { ConcreteSubject concreteSubject = new ConcreteSubject(); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "A")); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "B")); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "C")); concreteSubject.SubjectState = "xyz"; }
public void Test_Observer_normal() { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "x")); s.Attach(new ConcreteObserver(s, "y")); s.Attach(new ConcreteObserver(s, "z")); s.SubjectState = "abc"; s.Notify(); }
//观察者模式 [əb'zə:və, ɔb-] static void Main(string[] args) { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "a")); s.Attach(new ConcreteObserver(s, "b")); s.Attach(new ConcreteObserver(s, "c")); s.SubjectState = "run"; s.Notify(); Console.Read(); }
/// <summary> /// 观察者模式 /// </summary> static void TestObserver() { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); s.SubjectState = "ABC"; s.Notify(); }
static void Main() { var s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "Observer-X", 10)); s.Attach(new ConcreteObserver(s, "Observer-Y", 20)); s.Attach(new ConcreteObserver(s, "Observer-Z", 30)); s.SetState(12); Console.ReadKey(); }
public void Initialize() { cs = new ConcreteSubject(); co1 = new ConcreteObserver(cs); co2 = new ConcreteObserver(cs); co3 = new ConcreteObserver(cs); cs.Attach(co1); cs.Attach(co2); cs.Attach(co3); }
public void ObserverTest3() { ConcreteSubject subject = new ConcreteSubject(); ConcreteObserver observer1 = new ConcreteObserver(); ConcreteObserver observer2 = new ConcreteObserver(); subject.Attach(observer1); subject.Notify(); subject.Attach(observer2); subject.Notify(); Assert.True((observer1.Notified == 2) && (observer2.Notified == 1)); }
public void Test() { Observer coa = new ConreteObserverA(); Observer cob = new ConreteObserverB(); Observer coc = new ConreteObserverC(); Subject cs = new ConcreteSubject(); cs.Attach(coa); cs.Attach(cob); cs.Attach(coc); cs.Notify(5); }
public void subjectCount() { ConcreteSubject subject = new ConcreteSubject(); Ellipse testEll1 = new Ellipse(); ConcreteObserver ob1 = new ConcreteObserver(subject, testEll1); Ellipse testEll2 = new Ellipse(); ConcreteObserver ob2 = new ConcreteObserver(subject, testEll2); subject.Attach(ob1); subject.Attach(ob2); Assert.AreEqual(subject.observers.Count, 2); }
public static void ObserverStructural() { // Configure Observer pattern ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); // Change subject and notify observers s.SubjectState = "ABC"; s.Notify(); }
/// <summary> /// Entry point into console application. /// </summary> public void Run() { // Configure Observer pattern var s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); // Change subject and notify observers s.SubjectState = "ABC"; s.Notify(); }
public void TestObserverPattern() { ConcreteSubject concreteSubject = new ConcreteSubject(); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "x")); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "y")); concreteSubject.Attach(new ConcreteObserver(concreteSubject, "z")); concreteSubject.SubjectState = "ABC"; concreteSubject.Notify(); Assert.True(true); }
static void ObserverDefinedTest() { // 具体目标 ConcreteSubject s = new ConcreteSubject(); // 添加观察者 s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); // 更改具体目标的状态 s.SubjectState = "ABC"; // 通知观察者 s.Notify(); }
public void ObserverUsage() { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); // Change subject and notify observers s.SubjectState = "ABC"; s.Notify(); Assert.IsTrue(true); }
private static void Main() { var subject = new ConcreteSubject(); var observer1 = new ConcreteObserver("observer1"); var observer2 = new ConcreteObserver("observer2"); subject.Attach(observer1); subject.Attach(observer2); subject.SubjectState = "Modified"; subject.Detach(observer1); subject.Detach(observer2); subject.SubjectState = "Modified Again !"; Console.ReadKey(); }
public void ObserverTest4() { ConcreteSubject subject = new ConcreteSubject(); ConcreteObserver observer1 = new ConcreteObserver(); ConcreteObserver observer2 = new ConcreteObserver(); subject.Attach(observer1); subject.Notify(subject); subject.Attach(observer2); subject.Notify(subject); subject.Detach(observer1); subject.Notify(subject); Assert.True(observer1.Notified == observer2.Notified); }
// Use this for initialization void Start() { ConcreteSubject subject = new ConcreteSubject(); subject.Attach(new ConcreteObserver(subject, "Observe A")); subject.Attach(new ConcreteObserver(subject, "Observe B")); subject.Attach(new ConcreteObserver(subject, "Observe C")); subject.SubjectState = "Ready"; subject.Notify(); MyDelegate.testDelegate += log1; MyDelegate.testDelegate += log2; MyDelegate.testDe("TestDelegate"); }
//LD_OBSERVER_000 public static void RunObserverBehavioralPattern() { //one subject and two observers ISubject <string> subject = new ConcreteSubject <string>(); ObserverBehavioralPattern.IObserver <string> observer1 = new ConcreteObserver <string>("observer1"); ObserverBehavioralPattern.IObserver <string> observer2 = new ConcreteObserver <string>("observer2"); //register the observers to the subject subject.Attach(observer1); subject.Attach(observer2); //a change to the subject automatically notifies all the observers subject.SetState("stateX"); }
private static void callObserver() { ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); // Change subject and notify observers s.SubjectState = "ABC"; s.Notify(); // Wait for user Console.ReadKey(); }
// Update is called once per frame void UnitTest () { // 主題 ConcreteSubject theSubject = new ConcreteSubject(); // 加入觀察者 ConcreteObserver1 theObserver1 = new ConcreteObserver1(theSubject); theSubject.Attach( theObserver1 ); theSubject.Attach( new ConcreteObserver2(theSubject) ); // 設定Subject theSubject.SetState("Subject狀態1"); // 顯示狀態 theObserver1.ShowState(); }
/// <summary> /// Entry point into console application. /// </summary> static void Demo() { // Configure Observer pattern ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); // Change subject and notify observers s.SubjectState = "ABC"; s.Notify(); // Wait for user Console.ReadKey(); }
public static void Main() { ConcreteSubject s = ConcreteSubject.GetInstance(); s.Attach(new PusherObserver(s)); Listen(s); }
public static void TestObservers() { var s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); s.Attach(new ConcreteObserver(s, "Z")); s.SubjectState = "ABC"; var dict = s.Notify(true); foreach (var dictVal in dict) { StringAssert.AreEqualIgnoringCase(dictVal.Value, "ABC"); } }
static void Main(string[] args) { //IBM myIBM = new IBM("IBM", 120.00); //myIBM.Attach(new Investor("Sorres")); //myIBM.Attach(new Investor("Berkeley")); //myIBM.Price = 120.10; //myIBM.Price = 122; //myIBM.Price = 130; ConcreteSubject myConcreteSubject = new ConcreteSubject(); myConcreteSubject.Attach(new ConcreteObserver("Hans", myConcreteSubject)); myConcreteSubject.Attach(new ConcreteObserver("Jokke", myConcreteSubject)); myConcreteSubject.State = "Hello"; myConcreteSubject.State = "Derp"; }
// Entry point into console application. static void Main() { // Configure Observer pattern ConcreteSubject s = new ConcreteSubject(); s.Attach(new ConcreteObserver(s, "X")); s.Attach(new ConcreteObserver(s, "Y")); // Change subject and notify observers s.SubjectState = "A"; s.Notify(); Console.WriteLine(); s.Attach(new ConcreteObserver(s, "Z")); s.SubjectState = "B"; s.Notify(); // Wait for user input Console.ReadKey(); }
public static void Main( string[] args ) { // Configure Observer structure ConcreteSubject s = new ConcreteSubject(); s.Attach( new ConcreteObserver( s, "X" ) ); s.Attach( new ConcreteObserver( s, "Y" ) ); s.Attach( new ConcreteObserver( s, "Z" ) ); // Change subject and notify observers s.SubjectState = "ABC"; s.Notify(); }