Object-Oriented Design Concepts - How to use Interface Correctly