所以基本上这个标题听起来比实际问题更有趣。
我正在编写一个应用程序,我想在其中实现一个成就系统。如果我将所有成就都创建为通用类的实例,我如何编写一个方法来验证这些成就(即确定用户是否达到或超过目标),当完成的壮举类型可能不同时,条件的数量要满足的条件可能会有所不同,验证的类型可能会有所不同?
例如:
成就 - 10,000 分!
类型 - 总分值
(X) - 10,000
条件 - 1
验证 - 大于 X
对比
成就 - 超碎片
类型 - 击杀
值 (X) - 10
类型 - 时间
值 (Y) - 10 秒
条件 - 2
验证 - 至少 X 在小于 Y
我试图避免为每个成就硬编码验证函数,因为它们主要是通用的,唯一的区别是它们的验证方式。
就像成就类看起来像
public class Achievement
{
boolean locked;
String name;
String desc;
public Achievement(string n, string d)
{
//ctor code
}
}
我正在想办法在没有函数指针的情况下做到这一点,但我失败了。另外,你甚至可以在java中使用函数指针吗?我是这门语言的新手:(