两个类之间的逻辑问题

时间:2014-12-05 10:46:26

标签: oop circular-reference

我正在编写一款经典的推箱子游戏。我有一个名为“Warehouse”的类,它代表一个仓库和一个名为“WarehouseItem”的类,它是属于仓库的项目的基类。

我希望以下操作成为可能:

Dim wh as Warehouse
Dim whItem as WarehouseItem

wh.Add(whItem)
wh.Remove(whItem)
whItem.Warehouse = wh
whItem.Warehouse = Nothing

问题是我最终得到了上面的函数,试图递归地互相调用,我不知道如何服从它(以及我犯错误的地方)。这是它的样子:

Class Warehouse
    ...
    Items as List(Of WarehouseItem)        

    Sub Add(item as WarehouseItem)
         Items.Add(item)
         wh.Warehouse = wh // Recursive call
    End Sub
    ...
 End Class

Class WarehouseItem
    ...   
    Private mWarehouse as Warehouse

    Property Warehouse As Warehouse
        ...
        Set(wh As Warehouse)
             mWarehouse = wh 
             mWarehouse.Add(me) // Recursive call
        End Set
    End Property
    ...
 End Class

如果我能更改代码以便执行上述操作,我将不胜感激。

0 个答案:

没有答案