我应该如何命名一个只有 getter 的 Java class?

What should I name a Java class that only has a getter?

我已经建立了一个可插拔系统,可以从系统环境中检索数值,它没有等效的设置器。

例如:

该接口指​​定了检索器的合约

public interface ValueRetriever
{
    double retrieveValue();
}

这里有两个实现:

public class TotalMemoryRetriever implements ValueRetriever
{
    @Override
    public double retrieveValue()
    {
        return Runtime.getRuntime().totalMemory();
    }
}

public class FreeMemoryRetriever implements ValueRetriever
{
    @Override
    public double retrieveValue()
    {
        return Runtime.getRuntime().freeMemory();
    }
}

其他可能性是 return 系统负载、空闲磁盘 space 等

我构建了另一个层,用于计算检索值在不同时间跨度内的移动平均值,这就是为什么有一个检索接口很有用。这让我可以将移动平均机制与 "plugging in" 每个特定检索器的许多 "retriever" 实现一起使用。

我为此选择了 "retriever" 这个术语,但我的感觉是可能有更好的术语或更好的方法来做到这一点。我可以在这里使用最佳实践或其他惯例吗?

您可以将 类 命名为 TotalMemorySensorFreeMemorySensor 并使它们都实现 MemorySensor 接口。

我不确定 RAM、CPU、磁盘和其他统计数据是否应该使用相同的接口。检索 double 甚至意味着什么?是 KB、MB、GB 吗?感觉 DiskSensor 应该有 long totalSpaceInBytes()CpuSensor 应该有 double loadAverage(TimeUnit).

一个ValueRetriever可以代表任何意思,我们已经有了一个DoubleSupplier