Inheritance: Subject, IObserver
 public DerivedTwo(SubjectObserver father, object x)
 {
     this.father      = father;
     this.reference   = (xKernelCentral)father;
     this.MinimizeBox = false;
     InitializeComponent();
     this.ShowInTaskbar = false;
 }
Exemple #2
0
 public DerivedOne(SubjectObserver father, Object x)
 {
     this.MinimizeBox   = false;
     this.ShowInTaskbar = false;
     InitializeComponent();
     this.father     = father;
     this.dependency = (xKernelCentral)father;
     this.update(x);
 }
Exemple #3
0
        static void Main()
        {
            SubjectObserver so = new SubjectObserver(Update);

            // Аналог вызова Notify() - логически относится к издателю (Subject).
            so.Invoke();

            // Delay.
            Console.ReadKey();
        }
Exemple #4
0
        public void ObserverPattern_TestIfObbserversWerNotified()
        {
            // Arrange
            var subject   = new SubjectObserver();
            var observerA = new ObserverA(subject);
            var observerB = new ObserverB(subject);

            // Act
            const string state = "bla bla";

            subject.BuisnessMethod(state);
            subject.Notify();

            // Assert
            Assert.AreEqual(observerA.State, state);
            Assert.AreEqual(observerB.State, state);
        }
Exemple #5
0
        static void Main(string[] args)
        {
            // Create a subject and the observable, inject the subject into the observable
            Subject           subject    = new Subject();
            SubjectObservable observable = new SubjectObservable(subject);

            //Create two observers
            SubjectObserver zeus = new SubjectObserver(observable, "Zeus");
            SubjectObserver ares = new SubjectObserver(observable, "Ares");

            // Run a loop and trigger the observer
            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine("Counter: " + subject.Counter);
                observable.inspectSubject();
            }

            Console.ReadLine();
        }