2013-06-08 3 views
0

В главе SQLite «Hello, Android» создан интерфейс Constants, который содержит постоянные строки: имя таблицы и имена полей.Зачем использовать интерфейс Constants для SQLite для хранения имен полей?

Почему? Как более полезно использовать TITLE, чем "title"? Есть что-то еще, что мне не хватает?

И кстати: как это организовать, если мне нужны две таблицы? Должен ли я делать интерфейсы FirstTableConstants и SecondTableConstants?

+1

http://developer.android.com/training/articles/perf-tips.html. проверьте ссылку и тему в разделе static final для констант – Raghunandan

+0

, потому что результат кода более читабельен, вероятность того, что обращение к существующему столбцу (ошибка написания имени столбца) уменьшится около 0 – Blackbelt

+0

Пройдите через эту статью [http: // www. .javaworld.com/JW-09-1999/JW-09-cooltools.html). – NINCOMPOOP

ответ

0

Если вы используете класс, вероятно, вы должны иметь их как public static final String TITLE = "Some Title". Лучше использовать его таким образом, чтобы вы не делали ошибку при вводе ее в команду. Вам нужно будет только ввести имя переменной.

1

Если вы собираетесь использовать строку более одного раза, лучше всего создать для нее константу. Это предотвращает создание строки более одного раза. Размещение объектов не является бесплатным, поэтому вы увидите некоторое увеличение производительности.

Рассмотрите случай, когда вы создаете строку в цикле.

for(int i=0;i<n;++i){ 
    System.out.println("title"); 
} 

против использования константы:

for(int i=0;i<n;++i){ 
    System.out.println(TITLE); 
} 

Если потребовалось 1мс выделить строку «название», ваше время выполнения для первого кода петли N X 1мс.

Кроме построения SQL заявления с константами будет быстрее, чем повторно создавать новые строки для ключевых слов заявление для типов (текст, целое число,) модификаторы (уникальные, не равно нулю) и т.д.

String TABLE_SCHEMA = "(" + 
      ID + " integer primary key autoincrement, " + 
      COL_FOO1 + " text, " + 
      COL_FOO2 + " text, " + 
      COL_FOO3 + " text, " + ... 

Если вы «text», константа, вы не создаете эту строку снова и снова, поэтому ваша строка TABLE_SCHEMA создается быстрее.

String TABLE_SCHEMA = "(" + 
      ID + " integer primary key autoincrement, " + 
      COL_FOO1 + TYPE_TEXT + 
      COL_FOO2 + TYPE_TEXT + 
      COL_FOO3 + TYPE_TEXT + ... 
+0

Другим преимуществом является то, что использование констант избегает опечаток (возможно, опечатки могут возникать ;-)) –

+0

@ JoëlSalamin еще одна хорошая причина действительно :) –

Смежные вопросы