При интернационализации в Java вы назначаете строковый ключ каждому сообщению. Какая лучшая практика, где разместить эти строковые ключи. Цель состоит в том, чтобы разрешить простой рефакторинг (например, изменение имени ключа), чистый и читаемый код, разделение проблем, но при этом не дублировать ключи/сообщения, даже если они вызваны из разных частей кода.
//bad way, strings directly in code
messages.getString("hello_key");
-
// better way, use String constants
public static final String HELLO_KEY = "hello_key";
...
messages.getString(HELLO_KEY);
-
// other (better?) way, put all keys in one huge central class
public class AllMessageKeys {
public static final String HELLO_KEY = "hello_key";
...
}
public class Foo {
...
messages.getString(AllMessageKeys.HELLO_KEY);
}
-
// other (better?) way, put all keys in neighbor class
public class FooMessageKeys {
public static final String HELLO_KEY = "hello_key";
}
public class Foo {
...
messages.getString(FooMessageKeys.HELLO_KEY);
}
Любые другие предложения? Что лучше? Я на Eclipse IDE, если это делает часть рефакторинга более понятной.
Разъяснение: в приведенных выше примерах "сообщения" имеют тип ResourceBundle.