- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在编写 Generic RPG Number 3,742
时,我为 Items
和 Inventory
实现了一个类。从概念上讲,Item
是一个特定的项目。我想要一种“堆叠”项目的方法,这样对于每种 Item
,我在 Inventory
中只有一个条目。
为此,我创建了一个 Item Wrapper
,它有一个 private
Item
和 Number of Items
。它还有一些处理获取所有这些 Items
等的总重量的方法。
当我对此进行扩展时,麻烦就来了。我发现自己想要在我的 Item Wrapper
类中复制几乎每个 Item
方法。另一种方法是使 Item
public
并在 Inventory
类中引用它,这感觉同样糟糕。
这是否表明 Item Wrapper
不应该存在?这会导致 Inventory
中的重复项目或 Item
的概念成为单一的问题。我觉得可能有更好的解决方案,但我似乎找不到。
编辑:对当前类结构添加更多说明。
Player_Character
有一个私有(private)库存
。
Inventory
有一个私有(private)的 [mumble] Vector
的 Item Wrapper
。
Item Wrapper
有一个私有(private)的 Item
和私有(private)的 int
"how_many"。
注意“有”。当我一直在扩展 Inventory
时,我注意到我一直需要 Item_Name
或其他特定于 Item
的东西。如果我不改变我的设计,我要么将 Item
中的所有 Get
函数复制到 Item Wrapper
中,要么制作 Item
public(在 Item Wrapper
中)。
最佳答案
您的 ItemWrapper
类型听起来像是 composite 的一个例子,这是一种非常常见的设计模式。如果是这样,我不会认为它是多余的或无用的。
关于java - 潜在无用的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36500144/
我是一名优秀的程序员,十分优秀!