Example: A draw point object requires a point to draw. However a different object is responsible for generating those points. That object could implement the Provider interface