OOP, Design Patterns and Drupal 8