예제 #1
0
 public void NotifyListeners(TeamStateChange changeType)
 {
     //foreach (var subscriber in subscribers)
     //{
     //   subscriber.Update(this, changeType);
     //}
     if (FootballTeamChanged != null)
     {
         FootballTeamChanged(this, changeType);
     }
 }
        //public void FootballTeamPropertyChangedHandler(object sender, PropertyChangedEventArgs e)
        //{
        //   if (!(sender is FootballTeam)) return;

        //   var team = sender as FootballTeam;
        //   var property = e.PropertyName;
        //   switch (property)
        //   {
        //      case "OffensiveBehavior":
        //         if (team.OffensiveBehavior is IllegalOffense)
        //            Console.WriteLine("\tPENALTY!! --> The offense is illegal!");
        //         else
        //            Console.WriteLine("The officiating crew has OK'd this offense.");
        //         break;
        //   }
        //}

        public void Update(FootballTeam footballTeam, TeamStateChange changeType)
        {
            switch (changeType)
            {
            case TeamStateChange.Offense:
                if (footballTeam.OffensiveBehavior is IllegalOffense)
                {
                    Console.WriteLine("\tPENALTY!! --> The offense is illegal!");
                }
                else
                {
                    Console.WriteLine("The officiating crew has OK'd this offense.");
                }
                break;

            case TeamStateChange.Defense:
                break;

            default:
                throw new ArgumentOutOfRangeException("changeType");
            }
        }
예제 #3
0
 public void Update(FootballTeam footballTeam, TeamStateChange changeType)
 {
     Console.WriteLine("The opponent's offense has changed to {0}.",
                       footballTeam.OffensiveBehavior.GetType());
 }