用小写命名public static final?

时间:2011-07-15 17:57:44

标签: naming-conventions access-modifiers

我有一个类的层次结构:

class Page {
}
class ChildPage1 extends Page {
    private static final String URL;
}
class ChildPage2 extends Page {
    private final String url;
}

有些网页有静态网址,但有些网页则没有。我需要一些方法,如父类load()中的Page,它将使用它的后代的url。我想过以这些方式实现它:

  • 使用反射api
  • 以小写形式命名静态最终URL(与命名约定相悖)。

在这种情况下,不遵循命名约定是否值得?

1 个答案:

答案 0 :(得分:1)

您可以通过向getUrl()添加一个必须在PageChildPage1中实施的抽象方法ChildPage2来解决您的问题。

class Page {
    protected abstract String getUrl();
}

class ChildPage1 extends Page {
    private static final String URL;

    protected String getUrl() {
        return URL;
    }
}

class ChildPage2 extends Page {
    private final String url;

    protected String getUrl() {
        return url;
    }
}