object-oriented methodologies is often difficult. You already understand that
object-oriented analysis and design emulates the way human beings tend to think
and conceptualize problems in the everyday world. With a little practice,
object-oriented programming will become second nature to you.
an example, consider a typical house in which there are several bedrooms, a
kitchen, and a laundry room—each with a distinct function. You sleep in the
bedroom, you wash clothes in the laundry room, and you cook in the kitchen.
Each room encapsulates all the items needed to complete the necessary tasks.
do not have an oven in the laundry room or a washing machine in the kitchen.
However, when you do the laundry, you do not just add clothes to the washer and
wait in the laundry room; once the machine has started, you may go into the
kitchen and start cooking dinner. But how do you know when to go back to check
the laundry? When the washer buzzer sounds, a message is sent to alert you to
go back into the laundry room to put in a new load. While you are folding
clothes in the laundry room, the oven timer may ring to inform you that the
meat loaf is done.
you have is a set of well-defined components: Each provides a single service to
communicate with the other components using simple messages when something
needs to be done. If you consider a kitchen, you see it is also composed of
several, smaller components, including the oven, refrigerator, and microwave. Top-level
objectsare composed of smaller components that do the actual
work. This perspective is a very natural way of looking at our world, and one
with which we are all familiar. We do the same thing in object-oriented programming:
components that perform a distinct service
all the items in the component necessary to get the job done
the messages that need to be provided to the other components
the details can be quite complex, these details are the basic principles of
Consider the microwave oven in your
kitchen, using the object-oriented thinking described above.
a table with
the following four columns and use the following headings: Top-Level Objects,
Communicates With, Incoming Messages, and Outgoing Messages.
Create rows in the table to fill in the columns for
each of the Top-Level Objects found on a microwave.
Also in the table explainsome of the graphical user
interfaces (GUIs) and communications messages that occur during the operation
of a microwave.
some of the advantages
of having a componentized system. For example, what happens if the