Object Oriented Programming using C#
Case Study
In the first phase a basic system will be implemented which will allow messages and clients to be created, the details
written to file and messages to be displayed.
In the second phase the system functionality will be extended to allow clients to be deleted and to allow their credit to be
increased. This will be done in a way to allow the demonstration of Test Driven Development (as described in Chapter 10).
11.8 Programming the Message Classes
Message, UrgentMessage and MessageSet are relatively straight forward to program.
Message has various instance variables (String: messageText and int: COST, clientID and daysRemaining). It has appropriate
properties to access these private attributes (note only daysRemaining needs a setter) and a constructor to initialize the
instance variables. It also has the following methods :-
void DecrementDays() // to reduce the number of days that the message should be displayed for
boolean HasExpired() // to specify if this message should be removed from the set of messages
String ToString() // to return the text to be displayed on the displayboard.
At some point we will need to store the ClientBook and MessageSet objects to a file. To do this all Client objects and
Message objects will also need to be stored hence these classes (including the Message class) will need to be marked as
Serializable.
Finally the requirements state that “No duplicate messages (i.e. the same text for the same client) are permitted.”
Therefore Message must override the Equals() and GetHashCode() methods to ensure that duplicates will not be permitted
when the messages are stored in a Set.
The complete code for this class is given below – though comments have been excluded for the sake of brevity.
The source code for the full system, fully commented, can be viewed by following the instructions near the end of this
chapter.