Java 我应该使用包含大量字段的枚举还是包含大量方法的类

Java 我应该使用包含大量字段的枚举还是包含大量方法的类,java,performance,enums,Java,Performance,Enums,我的任务是测试RestAPI的几个版本。我想到了两种方法来包含有效的rest调用集。在第一种情况下,我将使用RestUrlFactory,它包含一个对应于每个rest调用的方法。例如,我将采用以下方法: public RestURL Version_1_1_PRODUCTS_GET(); public RestURL Version_1_1_PRODUCTS_PUT(); public RestURL Version_1_2_PRODUCTS_PRODUCT(int productId); ..

我的任务是测试RestAPI的几个版本。我想到了两种方法来包含有效的rest调用集。在第一种情况下,我将使用RestUrlFactory,它包含一个对应于每个rest调用的方法。例如,我将采用以下方法:

public RestURL Version_1_1_PRODUCTS_GET();
public RestURL Version_1_1_PRODUCTS_PUT();
public RestURL Version_1_2_PRODUCTS_PRODUCT(int productId);
...etc
或者,我想我可以让RestUrlFactory包含 每个API版本。在这种情况下,每个rest调用都会有一个枚举字段

enum Version_1_1 implements RestUrl
{
    PRODUCTS_GET("/products", "GET"),
    PRODUCTS_PUT("TestProduct", "PUT"),
    ...
}

或者类似的东西。我认为后一种选择(使用enum)要干净得多。然而,我的问题是,它是否也是良好的OOP实践,并且在性能方面是否更好?我认为使用枚举将导致工厂类占用更少的空间。

如果使用此API的用户将通过HTTP进行调用,这将大大超过此处的任何性能考虑。不要担心性能:这将是过早的优化


在我看来,使用方法签名会给用户提供最容易使用的API,因为它提供了类型安全和非常特定的参数签名。我同意这一点。

如果使用此API的用户将通过HTTP进行调用,这将大大超过此处的任何性能考虑。不要担心性能:这将是过早的优化


在我看来,使用方法签名会给用户提供最容易使用的API,因为它提供了类型安全和非常特定的参数签名。我同意这一点。

使用您找到的清洁剂,并在需要时和需要的地方进行优化。性能在这里是无关紧要的,特别是如果您要发出HTTP请求,这将比访问枚举中的字段慢很多数量级(比如纳秒与秒)。过早优化,我们再次相遇。。。现在,说真的,仅仅因为代码有一个像“原则”或“模式”这样的花哨名字,就让代码几乎无法阅读或保存是没有用的。选择你最擅长的方法,用你的大脑保持它的可用性(不要盲目追求一个概念,而是应用好的实践),然后在你需要的时候调整它,而不是在之前。使用你发现的更干净的东西,并在需要的时候和需要的地方进行优化。性能在这里是无关紧要的,特别是如果您要发出HTTP请求,这将比访问枚举中的字段慢很多数量级(比如纳秒与秒)。过早优化,我们再次相遇。。。现在,说真的,仅仅因为代码有一个像“原则”或“模式”这样的花哨名字,就让代码几乎无法阅读或保存是没有用的。选择你最擅长的方法,用你的大脑保持它的可用性(不要盲目地支持一个概念,而是应用好的实践),然后在你需要的时候调整它,而不是在之前。