OO Design

1. Handle Ambiguity
When being asked an OO Design question, you should inquire who is going to use and how they are going to use. Depending on the question, you may even want to go through the "six Ws": who, what, where, when, how, why.

2. Define the core objects

3. Analyze Relationships
We now want to analyze the relationships between the objects.

  • Which objects are members of which other objects?
  • Do any objects inherit from any others?
  • Are relationships many-to-many or one-to-many?

4. Investigate Actions
At this point, you should the basic outline of your OO Design. What remains is to consider the key actions that the objects will take and how they relate to each other.