Файл констант Java
Я разрабатываю приложение для Android, и я очень новичок в Java и Android.
Я хочу создать некоторые константы для использования в некоторых действиях. Где я могу определить эти константы?
Спасибо.
Ответы
Ответ 1
Он считал плохую практику в java и большинстве языков OO, чтобы определить класс просто для хранения констант. Гораздо лучше определить константы в классе, с которым они связаны. Обычно есть один. например.
interface MyComponent {
/** The default height for a component */
public static final int DEFAULT_HEIGHT = 5;
// other stuff
}
Если действительно нет, не стесняйтесь определять отдельный класс.
EDIT: Ключевыми здесь являются:
- Сделать константы легко найти. Если есть "естественное" место для их размещения, поместите их туда (то есть высота по умолчанию для объектов Component принадлежит классу Component).
- У вас нет более высокой связи, чем вам нужно. Включение всех ваших констант в один класс "Константы" обеспечивает высокую связь, особенно в том случае, если последующие модификаторы имеют тенденцию затем помещать ВСЕ константы в класс Constants, независимо от того, есть ли у них другой класс, который они могли бы естественно ввести.
- Просто потому, что константа используется более чем одним классом, что не означает, что она должна быть в классе "Константы". Если константа используется "Приложением" и классами, использующими класс Application, тогда поместите ее в класс Application. Таким образом, вы не увеличиваете сцепление.
Ответ 2
Обычно вы должны использовать класс Constants или определять их в классах, где они используются, a la:
class Constants {
public static final int NUM_TRIANGLES = 4;
public static final String SOME_TEXT = "This is a constant";
}
Затем вы можете обратиться к ним с помощью:
String inst = Constants.SOME_TEXT;
Ответ 3
Самый распространенный способ - создать константы в классах, которые вам нужны:
class Example {
private static final int FILENAME = "test.txt;
}
Вместо частного он также может быть объявлен по умолчанию, защищен или открыт. Несмотря на то, что определение констант OO определяет константы - это специальные константы ( God), который хранит константы для всего приложения. Кроме того, вы также можете сохранять данные конфигурации в файле свойств , это не считается анти-шаблоном.
Другим вариантом, который быстро набирает популярность, является использование шаблона Dependency Inject (DI). Часто этот шаблон используется для объекта зависимости, но его также можно использовать для ввода постоянных значений в объекты. Это может быть, например, реализовано с помощью легкого Guice:
class Example {
String filename;
@Inject
public Example(@ConfigFilename String filename) {
this.filename = filename;
}
В специальном классе Binder вы привяжете значение к строкам, аннотированным с помощью @ConfigFilename. Таким образом, у вас минимальная связь и классы, которые могут быть независимо протестированы.
Ответ 4
Вы можете определить некоторые константы в перечислениях Java.
Один перечислитель Java может содержать несколько полей связанных данных.
Oracle предоставляет это введение в перечисления Java.