Ich habe für die Codingoutloud-Antwort gestimmt und möchte sie ein wenig erweitern.
Das Verpacken von Sammlungen in Klassen ist etwas, was ich immer versucht habe - meine Regel lautet "Übergeben Sie niemals eine nackte Sammlung". Der größte Fehler von OO, den ich gesehen habe, ist, wenn Leute Angst haben, Methoden hinzuzufügen, wo sie hingehören. In Ihrem Fall gehören die Methoden zur Sammlung (ganz offensichtlich, wenn Sie darüber nachdenken). Legen Sie sie also dort ab, indem Sie die Sammlung einpacken. Um das Sahnehäubchen auf den Kuchen zu setzen, legen Sie nur die Funktionen offen, die Sie außerhalb Ihrer neuen Klasse benötigen (als Codingoutloud) tat), damit Sie sich Ihre einzelne, kleine Klasse ansehen und leicht verstehen können, was diese Sammlung manipuliert.
Sie müssen nicht jedes mögliche Problem lösen, da es sich nur um Ihren Code handelt. Sie können den Sammlungs-Wrapper genauso einfach bearbeiten wie die anderen Klassen, die mit ihm interagieren. Auf diese Weise können Sie bei Bedarf anderen Code in die Klasse ziehen. Wenn Sie die Auflistung nie verfügbar machen, wird schnell klar, welcher Code zum Wrapper gehört.
Auf diese Weise haben Sie auch die vollständige Kontrolle über die Sammlung, sodass Sie verhindern können, dass sie in einen Zustand versetzt wird, der nicht mit ihrer Funktion übereinstimmt. Wenn beispielsweise kein Eintrag in der Sammlung null sein kann, verhindern Sie einfach, dass jemand eine Null einfügt!)
Der größte Teil des fehlerhaften OO-Codes, den ich je gesehen habe, wurde erstellt, weil jemand statische Dienstprogramme oder Inline-Code geschrieben hat, der zu Objekten gehört, zu denen er keinen Code hinzufügen konnte, anstatt die fehlerhaften Objekte in eigenen Code zu verpacken, den er ändern konnte .