CS616 - Software Engineering II - Patterns Exercise

CS616 - Software Engineering II - Patterns Exercise

<p>CS616 - Software Engineering II - Patterns Exercise You are designing the entire Football (Soccer) game engine, and have created an initial conceptual class diagram of the game. </p><p>You find that there may be many design problems with this design. The one you will consider here is has to do with the ball. In particular, when the position of a ball changes, all the players and the referee should be notified immediately. The solution to this problem is the use of the Observer Pattern. </p><p>Observer Pattern: Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. Its class diagram is given below.</p><p>The participants of the pattern are detailed below.</p><p>Subject This class provides an interface for attaching and detaching observers. Subject class also holds a private list of observers. Functions in Subject class are  Attach - To add a new observer to the list of observers observing the subject  Detach - To remove an observer from the list of observers observing the subject  Notify- To notify each observer by calling the Update() function in the observer, when a change occurs. ConcreteSubject This class provides the state of interest to observers. It also sends a notification to all observers, by calling the Notify function in its super class (i.e, in the Subject class). Functions in ConcreteSubject class are  GetState - Returns the state of the subject</p><p>Observer This class defines an updating interface for all observers, to receive update notification from the subject. The Observer class is used as an abstract class to implement concrete observers  Update - This function is an abstract function, and concrete observers will over ride this function</p><p>ConcreteObserver This class maintains a reference with the subject, to receive the state of the subject when a notification is received.  Update - This is the overridden function in the concrete class. When this function is called by the subject, the ConcreteObserver calls the GetState() function of the subject to update the information it have about the subject's state.</p><p>Exercise: Adapt the observer pattern to solve the ball problem when the position of a ball changes, all the players and the referee should be notified immediately. Solution </p>

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    3 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us