Daniel Thoma: URL "normalisieren"

Beitrag lesen

Hallo Bernhard,

Alles schön und gut, aber: Warum verhindert das, dass URL von URI abgeleitet sein sollte?

Achso Dir geht es nur um die Vererbung.
Kompatibilitätsgründe verhindern eigentlich nicht, dass man die Vererbungshierarchie in dieser Weise ändert. Auf Code der URL benutzt, hätte das ja keine Auswirkungen. Aber natürlich ist es schwierig, da die Schnittstelle von URL nie so entworfen wurde, dass man das von URI ableiten könnte. In soweit könnte das eine Rolle spielen.

Die Frage ist, ob man das ableiten könnte, würde man es neu schreiben. Vermutlich wäre es keine gute Idee, da URL eine ziemlich andere Datenstruktur ist. URL ist immer normalisiert. Eine von URI abgeleitete Implementierung würde sich also ziemlich anders verhalten, als URI das eigentlich tut. Das sollte man bei Vererbung vermeiden, da Code der eine URI verwendet, sich ja nicht nur darauf verlässt, dass es die gleichen Methoden hat, sondern auch darauf, dass die das gleiche oder etwas sehr ähnliches tun.
Das equals von URL ist auch etwas merkwürdig, da es irgendwie Domainnamen auflöst und IP-Adressen vergleicht. Hat mich mal ganz gut nerven gekostet ;-) Hatte irgendwelche Class-Loading und Sicherheitsgründe. Ok, das könnte man bei einem Redesign vielleicht schlauer machen.
URL in der Funktionalität kann man also kaum von URI ableiten, evtl hätte man irgendwie URL als Wrapper für URIs entwerfen können oder ein gleiches Interface implementieren lassen.
Zusammengefasst: Wahrscheinlich liegt es nicht nur daran, das URL einfach alt ist ;-)

Grüße

Daniel