假设您有一组按层次结构排列的对象。即有一个包罗万象的对象,那么那个对象指代几个同类但层次较低的对象,而这些对象中的每一个对象又指代几个同类但层次较低的对象,以此类推。可变数量的步骤。例如,让我们将这些对象视为政府,因此最高级别将是全球,然后全球将有国家和部落,国家将有城镇,城镇将有房屋和企业等。所有这些政府都扩展了 gov 抽象类,因此它们都共享同一类。
我需要遍历整个层次结构中的所有对象,但是因为我在运行时不知道完整的结构,所以我必须以一种概括的方式来做。我只知道有一个全球政府,然后我必须检查它必须进行哪些子政府。
我发现的一种方法是为超类提供一个名为 getSubGovs() 的函数,该函数返回所有下级政府的列表以及每个下级政府从 getSubGovs() 返回的内容。我希望这是有道理的。这是重现问题的好方法。
我正在寻找的是一种无需向超类添加函数的方法,对于我正在处理 API 并且无法修改超类的情况。什么是一种优雅的方式来做到这一点?