У меня есть 7-8 классов, которые можно использовать, используя некоторые аналогичные функции, а также читать в том же списке и HashMap. Итак, я создал статический класс, содержащий все функции как статические функции и статический список и hashMap.Дизайн OO против статических классов в java и параллельной работе
Теперь у меня есть некоторые вопросы:
1.) Это неправильная практика, чтобы иметь статические классы в Java, как мой старший ругайте меня, используя статический класс и скорее просил меня, чтобы преобразовать его в одноэлементный класс ,
Но статические классы быстрее, чем одиночные. Не так ли?
2.) Плохая конструкция, чтобы иметь ссылку на статический/нестатический метод для получения некоторых данных, таких как список внутри метода вызова (в потоке) или для выполнения какой-либо задачи?
Нарушает ли безопасность нити или параллелизм, как сказал мой старший? И попросите меня иметь список внутри класса потока как частный член.
Но не так плохо использовать память, поскольку другие классы потоков 6-7 используют один и тот же список только для чтения.
3.) Как я могу улучшить дизайн OO с улучшением производительности.
примера код будет выглядеть следующим образом:
public class StaticClass {
private static List<String> ListOne;
private static List<String> listTwo;
private static HashMap<String, String> hMap;
static{
//initialize list and maps by reading from file
}
public static List<String> getListOne() {
return ListOne;
}
public static List<String> getListTwo() {
return listTwo;
}
public static HashMap<String, String> gethMap() {
return hMap;
}
public static void commonMethodOne(){
}
public static String commonMethodTwo(){
}
public static String[] commonMethodThree(){
}
}
public class CallableThread implements Callable<String>{
public String call(){
HashMap<String, String> mapTask = StaticClass.gethMap();
List<String> taskOne =StaticClass.getListOne();
for(String temp : taskOne){
//do what you are suppose to do
}
for(String key : mapTask.keySet()){
//do what you are supposed to do
}
return "Done with CallableThread";
}
}
Нет «старшего» человек не будет рекомендовать Singleton. Я не вижу никакого преимущества в создании этого статического или синглтона. Если у вас есть изменяемые общие данные, вам лучше помнить о правильной синхронизации. Мне кажется, что ты беспокоишься о неправильном. – duffymo