1

我正在做一个 GWT 项目。我现在在两个地方提供错误消息 - Hibernate Validator 注释和 setter 验证。这些消息是相同的。此外,它们在 UI 方面也可能相同。

我不想在三个不同的地方编写相同的字符串,而是想将它们合并到一个资源中,并使项目可以访问该资源。

我曾想过在“共享”包中使用属性文件,然后可以使用 ResourceBundle 访问它。但是,这意味着我将不得不在实体类中实例化包,我觉得这不好。实体类本质上依赖于捆绑包。但是,我也找不到其他方法。

有更好的解决方案吗?

4

1 回答 1

0

我会使用纯抽象类来“隐藏”我使用 ResourceBundle 的事实。就像是 :

public abstract class MyAppMessages {

    private static ResourceBundle messagesBundle = ResourceBundle.getBundle("messages", Locale.FRANCE);

    private MyAppMessages() {
        // hide the utility class constructor
    }

    public static String getMessage(String key) {
        return messagesBundle.getString(key);
    }
}

当然,它并没有消除实体类和包访问之间的依赖关系,但至少你对静态资源使用了单例设计模式,并且只有一个类仍然依赖于 ResourceBundle。如果有一天您希望使用 ResourceBundle 以外的其他东西,则只需重构 1 个类。

于 2013-04-29T08:13:03.043 回答