Должен ли я использовать статические классы и что является преимуществом (или недостатком)?

Я вижу эти классы довольно часто, но я не использую их в своих проектах. Я проверял эти шаблоны дизайна отсюда, и я заметил, что они используют статические классы

Со страницы выше, пример кода:

class AutomobileFactory { public static function create($make, $model) { return new Automobile($make, $model); } } 

или в шаблоне Singleton:

  public static function getInstance() { static $instance = null; if (null === $instance) { $instance = new static(); } return $instance; }