Interesante aporte. Gracias.
Sólo vi el código, no lo probé.
Algunas cosas que vi. Primero, no veo razón para crear un setter y getter de la ruta en los filtros y ejecutor, ya que en teoría este parpametro debe ser el mismo que el de Directorio.
Luego, usa file_exists() para verificar si el thumb existe, y ya no será necesario poner el @ que tienes ahí.
Tercero, aunque es algo menor. Si DIrectorio no funciona sin el filtro y el ejecutor, entonces sería mejor colocar las tres clases en el mismo archivo. O si no que Directorio tenga la capacidad de ejecutarse sin la necesidad de establecer el filtro y/o ejecutor. Tendría que asignar comportamientos "por defecto".
Para extraer la extensión, usa
array_pop()luego de "explotar" el nombre de archivo.
Saludos,