Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Object-Oriented Thought Process Chapter 09

Similar presentations


Presentation on theme: "The Object-Oriented Thought Process Chapter 09"— Presentation transcript:

1 The Object-Oriented Thought Process Chapter 09
Building Objects and Object- Oriented Design

2 How Objects Are Related
Both inheritance and composition represent ways that objects interact. When inheritance is used, the end result is, at least conceptually, a single class that incorporates all the behaviors and attributes of the inheritance hierarchy. When composition is used, one or more classes are used to build another class.

3 Composition Relationships
The reason to use composition is that it builds systems by combining less complex parts. This is a common way for people to approach problems. Studies show that even the best of us can keep, at most, seven chunks of data in our short-term memory at one time.

4 Is-a and Has-a For consistency, we stick with phrases like “is-a animal” and “has a engine,” Even though “is a animal” and “has an engine” are grammatically correct. We do this because I want to simply state the rules as “is-a” and “has-a.”

5 Building in Phases Another major advantage in using composition is that systems and subsystems can be built independently. Perhaps more importantly, tested and maintained independently. For large software systems to work properly and be easily maintained, they must be broken into smaller, more manageable parts.

6 Types of Composition Generally, there are two types of composition: association and aggregation. In both cases, these relationships represent collaborations between the objects. In many designs, both association and aggregation are used.

7 Is Composition a Form of Association?
Some texts say that composition is a form of association, and some say that an association is a form of composition. In any event, in this book, we consider inheritance and composition the two primary ways to build classes. In this book, association is considered a form of composition.

8 Aggregations Perhaps the most intuitive form of composition is aggregation. Aggregation means that a complex object is composed of other objects. When you go into an appliance store, the salesperson does not say, “Let me show you this aggregation of microchips, a picture screen, a tuner, and so on.” The salesperson says, “Let me show you this TV.”

9 Associations Associations present both the whole and the parts.
As stated in the stereo example, the various components are presented separately and connect to the whole by use of patch cords (the cords that connect the various components).

10 Aggregation Versus Association
An aggregation is a complex object composed of other objects. An association is used when one object wants another object to perform a service for it.

11 Using Associations and Aggregations Together
A computer system is used to describe associations and also contains some aggregation. Although the interaction between the computer box, the monitor, the keyboard, and the mouse is association, the computer box itself represents aggregation. You see only the computer box, but it is actually a complex system made up of other objects, including chips, motherboards, video cards, and so on.

12 Avoiding Dependencies
When using composition, it is desirable to avoid making objects highly dependent on one another. One way to make objects very dependent on each other is to mix domains. In the best of all worlds, an object in one domain should not be mixed with an object in another domain, except under certain circumstances. .

13 Cardinality Cardinality is defined as the number of objects that participate in an association and whether the participation is optional or mandatory. Which objects collaborate with which other objects? How many objects participate in each collaboration?

14 Cardinality Notation The notation of means that an employee can have either zero or one spouse. The notation of n means that an employee can have any number of children from zero to an unlimited number. The n basically represents infinity.

15 Optional Associations
One of the most important issues when dealing with associations is to make sure that your application is designed to check for optional associations. This means that your code must check to see whether the association is null.


Download ppt "The Object-Oriented Thought Process Chapter 09"

Similar presentations


Ads by Google