В языке программирования Haxe у меня есть несколько разных классов «элементов», которые должны иметь возможность давать значение при наличии некоторых аргументов. Эти функции не должны иметь контакта с фактическими экземплярами объектов, но по-прежнему принадлежать этому классу, поэтому они должны быть статическими.
Однако я хочу иметь возможность передавать класс Apple или Mango (не экземпляр) и вызывать статический метод. Обычно я бы создал typedef, если бы хотел иметь доступ к методу, однако что мне делать, если метод статический? например -
class food
+eat()
+throw()
Apple extends food
+eat()
+(static) getFatLevels (p:Person)
Mango extends food
+eat()
+throw()
+(static) getFatLevels (p:Person)
...
function chooseBestFood () {
for (food in Foods){
if (food.getFatLevels(person) < lowest){
return (food);
}
}
}