TPicture geht doch den umgekehrten Weg, oder? Man lädt beliebige Daten rein, und bekommt dann anhand einer Eigenschaft genau das Format, das man will (falls es verfügbar ist). Hier geht es aber doch darum, beliebige Daten reinzuladen, und dann in einem standardisierten Format die Daten zu bekommen. Da würde ich eher keinen extra Wrapper für bauen, das ist ja nur eine Indirektion, die dem Benutzer hier nicht viel bringt (finde ich).
Edit roter Kasten:
Das ist zwar das Factory-Pattern, aber ich halte es in diesem Fall für, naja, zu viel, eine extra Klasse dafür zu haben. Ist dann eben ein kleiner Unterschied in der Ausrichtung, im einen Fall ist die statische Create-Methode ein Implementierungsdetail (für den Fall, dass der Benutzer eh nie mit den abgeleiteten Klassen selbst arbeiten soll), im anderen Fall ist die Factory das Implementierungsdetail von außen, das man unabhängig von der Basisklasse ändern kann, aber das auch eine zusätzlich Indirektion bedeutet, die hier eventuell nicht benötigt wird.
Edit roter Kasten 2:
Factory-Klasse hat doch Polymorphie, weil sie eine Ableitung einer Basisklasse zurückliefert (oder Implementierung einer Schnittstelle), oder?
Merkt man eigentlich, dass ich selbst hier mehr lerne als ich anderen erzähle? ^^