Collections.unmodifiable und andere Katastrophen

Das Collection Framework der Java Runtime Bibliothek ist aus meiner Sicht ein Beispiel für relativ schlechtes Design, das durch die Bequemlichkeit (es ist ja eh da) trotzdem eine hohe Verbreitung hat.

Das API bietet prinzipiell Methoden, um die Instanz zu verändern. Wenn ich das nicht möchte, so muss ich die Collection erst wrappen, und dann wirft die Instanz bei den Methoden auch nur eine Exception. Bibliotheken wie Apache Commons Collections erweitern das Framework eher um zusätzliche Funktionalitäten, beseitigen aber nicht das grundsätzliche Übel.

Aus diesem Grunde haben ich mich entschlossen, ein eigenes Framework zu bauen: decollect. Dabei versuche ich dem Interface Segregation Principle zu folgen.