【发布时间】:2016-10-28 06:58:43
【问题描述】:
我将下图中显示的示例模拟了我正在从事的实际项目。我正在用 C++ 实现这个项目。
这个例子的要点是我有一个FruitGarden,我知道它总是包含一个AppleTree。在FruitGarden 的函数StartHarvesting 中,应检查AppleTree 是否已准备好收割。为此,我创建了一个接口类。
我现在使用接口的方式是在Vegitation 中实现函数GetTreePointer 并将其转换为IFoodTree(并检查NULL)。我在此看到的问题是我将完整的树暴露给外部世界(通过实现 GetTreePointer),从而启用不打算在 Vegitation 之外使用的其他公共函数的调用。
我的主要问题是:获取指向AppleTree 的接口IFoodTree 的最佳方法是什么?
【问题讨论】:
-
经过编辑使其更具可读性,但由于我无法更新 UML,因此我留下了“Vegitation”(=> Vegetation)。