Dici male sì: se in un oggetto devi fare una query e se per fare la query hai scelto di usare PDO, hai una dipendenza da PDO.
Se escludiamo il terribile espediente della global (siamo mica più negli anni '90), l'injection nel costruttore resta la soluzione migliore (seguita, IMHO, dal singleton)