假设有一百个描述不同的类Animals
(因为很多都有独特的行为逻辑......),还有一些描述Biomes
.
我需要一种方法来预编译所有动物类的列表,这些动物类可以在给定特定气候区或其他因素的情况下实例化。
目前,在我的实际应用程序中,我使用列出所有“动物类型”的枚举,并使用加权随机方法返回该.class
动物的值。
Class<? extends Animal> cl = AnimalType.random().getClass();
if( cl != null ){
e = cl.newInstance();
// do stuff
}
但是,枚举将不再足够,因为我需要添加几种方法来检查不同的条件。动物类别可以提供一系列可接受的温度、土地类型或其他条件。
我正在考虑一种工厂类型的模式,或者只是将这种逻辑保留在 Animal 类本身(理想)中,但我 a)不希望每个类都有一个纯粹用于检查这些条件的实例,并且 b)我会使它们成为静态的,但不知道是否可以在不知道类名的情况下动态调用静态方法。我需要允许未来的插件来扩展动物类。
你建议我如何检查这样的逻辑?