Exemple #1
0
        public static void Main_Observer_V30(string[] args)
        {
            // create objects for testing
            AverageScoreDisplay averageScoreDisplay =
                new AverageScoreDisplay();
            CurrentScoreDisplay currentScoreDisplay =
                new CurrentScoreDisplay();

            CricketData cricketData = new CricketData()
            {
                Runs    = 100,
                Wickets = 3,
                Overs   = 22.3f
            };
            // pass the displays to Cricket data
            CricketSubject cricketSubject = new CricketSubject()
            {
                CricketData = cricketData
            };

            // register display elements
            cricketSubject.Register(averageScoreDisplay);
            cricketSubject.Register(currentScoreDisplay);

            // in real app you would have some logic to
            // call this function when data changes
            cricketSubject.ChangeData();

            //remove an observer
            cricketSubject.UnRegister(averageScoreDisplay);

            // now only currentScoreDisplay gets the
            // notification
            cricketSubject.ChangeData();
            Console.ReadKey();
        }
Exemple #2
0
 public void Update(CricketData cricketData)
 {
     CricketData = cricketData;
     Display();
 }
Exemple #3
0
 public void Update(CricketData cricketData)
 {
     this.RunRate        = (float)cricketData.Runs / cricketData.Overs;
     this.PridictedScore = (int)this.RunRate * cricketData.TotalOvers;
     Display();
 }