Ich schreibe eine Java-Implementierung eines Kartenspiels, also habe ich eine spezielle Art von Sammlung erstellt, die ich als Zone bezeichne. Alle Änderungsmethoden von Javas Sammlung werden nicht unterstützt, es gibt jedoch eine Methode in der Zonen-API, move(Zone, Card)
mit der eine Karte von der angegebenen Zone zu sich selbst verschoben wird (mithilfe von paketprivaten Techniken). Auf diese Weise kann ich sicherstellen, dass keine Karten aus einer Zone genommen werden und einfach verschwinden. Sie können nur in eine andere Zone verschoben werden.
Meine Frage ist, wie notwendig ist diese Art der defensiven Codierung? Es ist "richtig" und es fühlt sich wie die richtige Praxis an, aber es ist nicht so, dass die Zone-API jemals Teil einer öffentlichen Bibliothek sein wird. Es ist nur für mich, also ist es so, als würde ich meinen Code vor mir selbst schützen, wenn ich wahrscheinlich effizienter sein könnte, wenn ich nur Standard-Sammlungen verwende.
Wie weit sollte ich mit dieser Zonenidee gehen? Kann mir jemand einen Rat geben, inwieweit ich darüber nachdenken sollte, die Verträge in den von mir geschriebenen Klassen beizubehalten, insbesondere für solche, die nicht wirklich öffentlich verfügbar sein werden?