Hierarchy of the project:

  1. Interfaces:
  2. Concrete Classes:
  3. Usage:

Design Pattern used in the project:

  1. Abstract Factory Pattern:
  2. Decorator Pattern:
  3. Factory Method Pattern:
  4. Strategy Pattern:
  5. Factory Pattern:
  6. Singleton Pattern: