Wenn ich das richtig sehe, wäre die übliche Bezeichnung für deine TDeviceHandler-Klasse etwas wie TDevice
Factory.
Du hast da im wesentlichen das Konzept "Factory Pattern" gebaut.
Kann man auch noch erweitern, so dass du beim erstellen neuer abgeleiteten Klassen den Enum-Typen und den Constructor nicht erweitern musst.
Stattdessen können sich die Subklassen im initilzation-Abschnitt ihrer
Unit auch bei der Factory-Klasse "registieren". Statt einem enum übergibst du dann einen String, über den die Klasse identifiziert werden kann. Die Factory kann dann nachschauen, welche Klasse zu diesem ID-String gehört, und erstellt ein dazu passendes Objekt.
Ansatz z.B. hier:
https://www.delphipraxis.net/191593-...ndesign-2.html
The angels have the phone box.