Le constructeur est private pour qu'on ne puisse créer un directeur directement.

Celui qui veut un directeur le demande à la classe Directeur qui décide si elle en crée un ou pas.

Vous allez en fait implémenter le design pattern "singleton". Ce modèle de conception permet de ne créer qu'une seule instance d'une classe (on peut généraliser facilement pour ne permettre de créer qu'un nombre déterminé d'instances).