granseier
I'm new here

Medien Pool API Kuriosität

Hallo zusammen,

ich bin bei der API im Medien Pool auf eine seltsame Implementierung gestoßen.

Die Schnittstelle Media deklariert sowohl Methoden für Bilder als auch für normale Dateien.

Jedoch implementieren die beiden Arten nur jeweils eine Teilmenge der Schnittstelle.

Was zu einem schlechten Handling der beiden Klassen führt.

Dem entgegen steht die Schnittstelle MediaElement und die beiden Subinterfaces Picture und File die das gleiche über eine Vererbungshirarchie auflösen. Meiner Meinung nach ist diese Implementierung zu bevorzugen. Jedoch wird in der API bspw. bei der Klasse MediaStoreRoot als Rückgabewert für das Erzeugen von Medien Einträgen noch auf die Schnittstelle Media gesetzt.

Es wäre wünschenswert wenn die API auf das andere Konstrukt umzustellen und die Klasse Media als "deprecated" zu kennzeichnen.

Was spricht abgsehen von Modul-Anpassungen noch gegen diese Änderung?

Meiner Meinung nach wäre es eine Verbesserung der API die veraltete Schnittstelle auf lange Sicht aus dem Code zu entfernen.

Mit freundlichen Grüßen

Oliver Granseier

0 Kudos
2 Replies
gockel
Crownpeak employee

Hallo,

das ist in der hier geforderten Art nicht möglich.

Zu dem Element Media gehören ja potentiell n (pro Sprache) Picture-/File Kindknoten. Somit kann eine Umstellung an den angesprochenen erzeugenden Stellen (z.B. MediaStoreRoot) auf Picture / File nicht erfolgen und die Rückgabewerte müssen entsprechend so bleiben.

0 Kudos

Hallo Sebastian,

ich glaube du hast meine Intention dieses Beitrags nicht erfasst.

Es geht mir nicht darum ob man das mit Picture oder File zum jetzigen Zeitpunkt ermöglichen könnte.

Vielmehr wollte ich vorschlagen das Interface Media mit einer ähnlichen Vererbungshierarchie wie bei Picture und File mit dem Vater MediaElement zu gestallten. Statt einer Unterscheidung durch irgendwelche Flags bzw. Enums zusammengefasst in einem Super-Interface welches immer nur teilweise implementiert wird.

Viele Grüße

Oliver

0 Kudos