Schade das es keine "richtige" Lösung
Was auch immer Du darunter verstehen könntest: Eine richtige Lösung für ein falsches Design gibt es eigentlich nirgends.
Sobald Du aus Deinem Code-Geschreibsel eine wirkliche Aufgabe machst, findest Du zahlreiche erprobte Ansätze, wie man eine solche Konstellation sauber löst. Meine Präferenz geht da ganz klar zur Verwendung von Interfaces. Aber ich fürchte, Du bist noch nicht so weit. Egal. Lies Dich ein. Es funktioniert damit.