2016-10-26 3 views
0

Я немного смущен о моем новом типе класса, который я написал. Мой класс будет использоваться для обслуживания вопросов и опций, извлеченных из базы данных примерно для четырех тысяч одновременных пользователей. (Потому что экзамен начнется в одно и то же время для всех) Теперь, какой тип класса следует использовать для ускорения работы.Статический, Singleton или экземпляр?

Было бы хорошо, если бы я сделал его статическим?

public static List<Questions> getQuestions(String qType){ 
    List<Questions> objListExamsExt = new ArrayList<Questions>(); 
      .... 
      .... 
      ....  
     while (cursor.next()) { 
      Questions objExamQuestion = new Questions(); 
      objExamQuestion.setQuestion_id(cursor.getString("question_id")); 
      .... 
      .... 
      .... 
      objListExamsExt.add(objExamQuestion); 
     } 
    return objListExamsExt; 
} 
+0

Вам нужно иметь разные конфигурации или вы всегда будете использовать одну и ту же базу данных? –

+0

Синглтон - самый медленный из них. –

+3

@ Bálint Пожалуйста, не шутите. Люди могут подумать, что вы серьезны и думаете, что вместо разницы в дизайне есть разница в скорости. – Kayaman

ответ

0

Случай, когда статический класс может быть хорошей идеей, когда вы хотите, чтобы собрать related pieces of functionality, но вам не нужно иметь каких-либо внутреннее состояние в любом объекте.

Обычно вы можете создать статический класс Utils, содержащий целую кучу связанных функций, доступ к которым вне контекста какого-либо конкретного экземпляра объекта

одноплодный позволяет класс, для которого существует только один, постоянный экземпляр по время жизни приложения. Одноэлементный класс может быть полезен, если у вас есть какой-то общий ресурс, такой как база данных, кеш в памяти или, может быть, некоторые специализированные аппаратные средства, такие как роботизированная рука. Многие части вашей программы могут захотеть использовать этот ресурс, и вы можете захотеть, чтобы весь доступ к ресурсу проходил через одну точку. Синглтон не всегда является единственным способом справиться с этими ситуациями, но это одно из немногих мест, которые, по моему мнению, один из вариантов может быть хорошим выбором.

В вашем случае, если getQuestions() используется во многих местах приложения, тогда вы можете сгруппировать их вместе в статическом классе Utils.

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