170 likes | 304 Views
The Object Model. Lecture OO02 Classes as Abstract Data Types Understanding Classes and Objects. References. Ambler, S., The Object Primer , Cambridge Univ. Press, 2001, Chapter 1 & 2. Booch, G., Object-oriented Analysis and Design , Benjamin Cumings, 1994, Chapter 1.
E N D
The Object Model Lecture OO02 Classes as Abstract Data Types Understanding Classes and Objects
References • Ambler, S., The Object Primer, Cambridge Univ. Press, 2001, Chapter 1 & 2. • Booch, G., Object-oriented Analysis and Design, Benjamin Cumings, 1994, Chapter 1. • Gamma, E., et al, Design Patterns, Addison Wesley, 1994, Chapter 1
Teaching Points • The “Kind-of” Hierarchy • What is an object? • What is a class? • Your first pattern
Review • What is an abstract data type? • How do multiple architectural views help to cope with complexity? • A new kind of hierarchy is a new “kind of@ hierarchy
Things or objects in the problem domain It is all in the way we think about the problem Decomposition
Abstract data types Kinds of things Relationships inheritance aggregation use Abstractions
Akind of@ hierarchy Apart of@ hierarchy Hierarchy
Decomposition of an aircraft as a complex system Remember information-hiding! Example:
No longer a tree of process invocations Now a network of cooperating objects The Object Oriented Paradigm
What is an Object? • In-formally • A tangible and/or visible thing • Something that may be apprehended intellectually • Something toward which thought or action is directed
What is an Object? • An object has: • State (properties, values) • Behavior (modifiers, iterators, selectors, constructors, destructors) • Identity (???)
What is a class? • An abstraction or the Aessence@ of an object • represents a set of objects that share a common structure and common behavior (interface) • A kind-of-things • A single object is simply an instance of a class
Strengths of this kind of decomposition • Expression in vocabulary of the problem domain • Strong information hiding
What is a Pattern? • “A design pattern describes a commonly-recurring structure of communicating components that solve a general design problem in a particular context.” • Gamma, et al.
Composite Pattern • May be used to describe: • File system • Graphics objects • Aircraft Components • etc.
Teaching Points • The “Kind-of” Hierarchy • What is an object? • What is a class? • Your first pattern