Während ich schreibe Generic RPG Number 3,742
, habe ich eine Klasse für Items
und Inventory
implementiert. Konzeptionell und Item
ist ein bestimmtes Element. Ich wollte einen Weg, Gegenstände zu "stapeln", so dass ich nur 1 Eintrag in Inventory
für jede Art von Item
hätte.Potenziell nutzloses Objekt
Um dies zu tun, habe ich eine Item Wrapper
, die eine private
Item
und Number of Items
hat. Es hat auch ein paar Methoden, um das Gesamtgewicht aller dieser Items
, etc. zu bekommen
Das Problem kommt, wie ich auf diese erweitern. Ich finde, dass ich fast jede Item
Methode in meiner Item Wrapper
Klasse duplizieren möchte. Die Alternative ist, die Item
public
machen und sich darauf beziehen in der Inventory
Klasse, die sich genauso schlecht anfühlt.
Ist das ein Zeichen, dass Item Wrapper
nicht existieren sollte? Dies erzeugt Probleme mit entweder doppelten Elementen in Inventory
oder dem Konzept Item
s, das singulär ist. Ich denke, es gibt wahrscheinlich eine bessere Lösung, aber ich kann es nicht finden.
EDIT: Hinzufügen weiterer Klärung der aktuellen Klassenstruktur.
Player_Character
hat eine private Inventory
.
Inventory
hat eine private [mumble] Vector
von Item Wrapper
s.
Item Wrapper
hatte eine private Item
und private int
"how_many".
Beachten Sie die "hatte." Wie ich auf Inventory
erweitert habe, habe ich bemerkt, dass ich Item_Name
oder andere Dinge, die spezifisch für Item
sind. Wenn ich mein Design nicht ändere, kopiere ich entweder alle Get
Funktionen in Item
in Item Wrapper
oder mache Item
öffentlich (in Item Wrapper
).
haben Sie eine Sammlung von 'Item's? Ein "Wrapper" umschließt typischerweise eine einzelne Instanz, genau wie Süßigkeiten. – maasg
Die Darstellung von Item-Methoden in einem Wrapper macht für mich keinen Sinn. Eine Sammlung von Gegenständen ist kein Gegenstand. –