Index
Overview


Here is a video that accompanies this page is here...

Abstraction is similar to generalization.

Let's review the word abstract in the context of computer science.


Also see ADT.

Quiz Practice



Quiz


Problem Statement
To build a drawing tool (system).

The tool will have a collection of graphic elements, which will be able to perform draw operations such as draw, move, grow, shrink and animate.
Graphic Elements
This problem has many drawable types as shown.

They include: Arc, Line, Fractal, Ellipse, Rectangle, ... (unlimited)
Puzzle
This is complex. We need to design a system but the number of element types is unlimited (infinite)?
Arc
	Line 		Fractal
	Ellipse
Rectangle
etc
How Can We Simplify?
We use a general type for design.

We might call it a Drawable (or GraphicElement, etc).
What Can a Drawable Do?
A Drawable can perform the "draw operations" (mentioned in the problem statement).

We now have simple algorithms like:
Iterate over drawables
	eachDrawable.draw()

References