方法表现得像 Class 字段

Methods behaving like Class Fields

有时您需要由不止一个值组成的值,但基础值也可以改变。

例子

在用 Java 编写的角色扮演游戏中,可能会有一个 class 代表玩家。他可以拥有字段 "life" 和 "endurance"。最后一个字段可以增加玩家的生命。所以我们有 "life" 和增加生命的属性 "endurance" 导致总生命或完整生命。

我会写这样的东西:

public class Player
{
    private int life;
    private int endurance;
    private int life_total()
    {
        return life + endurance;
    }

    public Player()
    {
        life = 10;
        endurance = 2;
    }

    public int get_life_total()
    {
        return life_total()
    }
}

我会编写一个方法,它看起来像一个带括号的字段,但行为也像一个字段。这是可以接受的解决方案还是针对此类情况有更好的解决方案?

在具有像 javascript 这样的函数引用的语言中,是否可以接受使用此类函数引用来返回组合值?

您的 getter 方法应该更像这样。没有理由让您的 getter 方法调用另一个方法来获取您的变量。

public int get_life_total(){
    return life + endurance;
}