Provide a way to access the elements of an aggregate object sequentially without exposing its
underlying representation. - ANS-Patterns: Iterator
Separate the construction of a complex object from its representing so that the same
construction process can create different representations. - ANS-Patterns: Builder
Hides the internal details and describes things in simple terms. - ANS-Abstraction
The technique to implement abstraction in OOP. Hiding: data, classes, methods, algorithms, etc.
- ANS-Encapsulation
An Object behaves differently in different situations. The ability to refer to different derivations of
a class in the same way but getting the behavior appropriate to the derived class. -
ANS-Polymorphism
An object based on another object.
Code reuse.
Super class vs Subclass.
is-a relationship - ANS-Inheritence
Defines the relationship between objects.
Defines the multiplicity between objects. - ANS-Association
A specialt type of association.
The contained item is part of a collection of items.
a "has-a" relationship. - ANS-Aggregation
A special case of aggregation.
A more restrictive form of aggregation.
The contained item is part of the containing item.
The contained object can't exist on its own.
A "has-a" relationship. - ANS-Composition
One class "uses" another class.
A "uses-a" relationship. - ANS-Dependency
Blueprint for a group of similar entities.
Data, Methods, the way these data elements and methods can be accessed. - ANS-Class
an entity with responsibilities.