Generic RPG Number 3,742
と書いているので、Items
とInventory
のクラスを実装しました。概念的には、Item
が1つの特定の項目です。私はItem
の種類ごとにInventory
に1つのエントリしか持てないように、アイテムを積み重ねる方法を望んでいました。潜在的に役に立たないオブジェクト
Item Wrapper
これを作成するには、private
Item
とNumber of Items
があります。また、これらのすべての重量を得ることを扱ういくつかの方法があります。
これを拡張するとトラブルが発生します。私は自分自身Item Wrapper
クラスのほとんどすべてItem
メソッドを複製したいと思う。代わりに、Item
public
を作成して、それと同じように悪いと感じるクラスInventory
を参照してください。
これはItem Wrapper
が存在しないという兆候ですか?これは、Inventory
の重複項目、またはItem
の概念が単数であるという問題を引き起こします。おそらくもっと良い解決策があるように感じますが、私はそれを見つけることができません。
編集:現在のクラス構造についての説明を追加する。
Player_Character
には、プライベートInventory
があります。
Inventory
は、プライベート[ムンブル] Vector
がItem Wrapper
である。
Item Wrapper
は、プライベートItem
とプライベートint
"how_many"を持っていました。
「had」に注意してください。 Inventory
に拡大しているので、私はItem_Name
やItem
に特有のものが必要であることに気付きました。デザインを変更しない場合は、Item
のGet
関数をすべてItem Wrapper
にコピーするか、Item
をpublic(Item Wrapper
)にします。
あなたは 'Item'のコレクションを考えましたか?通常、ラッパーはキャンディのように単一のインスタンスを囲みます。 – maasg
アイテムメソッドをラッパーに公開することは意味がありません。アイテムのコレクションはアイテムではありません。 –