Создание глобального владельца классаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Создание глобального владельца класса

Сообщение Anonymous »

Привет всем, мне интересно, как я могу использовать общий вызов одного из моих классов, чтобы минимизировать свой код.
В настоящее время у меня есть код if else, который определяет какой класс следует загрузить.
В качестве примера в моей основной активности:

Код: Выделить всё

if (btnName.equals("up"))
if (globalRoom.equals("ABC")) {
btnNumber = 0;
ABC.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("NBC")) {
btnNumber = 1;
NBC.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("CBS")) {
btnNumber = 2;
CBS.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("REK")) {
btnNumber = 3;
REK.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("DSR")) {
btnNumber = 4;
DSR.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("LR2")) {
btnNumber = 0;
LR2.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false);
}
} else if (btnName.equals("down"))
if (globalRoom.equals("ABC")) {
btnNumber = 0;
ABC.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("NBC")) {
btnNumber = 1;
NBC.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("CBS")) {
btnNumber = 2;
CBS.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("REK")) {
btnNumber = 3;
REK.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("DSR")) {
btnNumber = 4;
DSR.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false);
}
else if (globalRoom.equals("LR2")) {
btnNumber = 0;
LR2.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false);
}
} etc etc....
В каждом из моих классов класс ABC.java:

Код: Выделить всё

public class ABC {
public static void sendTheCmd(String theCmd, String TV, List all_TvType, btnNumber, Boolean keyboard) {
try {
...
} catch (Exception e) {
Log.d("", e.getMessage());
}

return null;
}
}
Класс NBC.java:

Код: Выделить всё

public class NBC {
public static void sendTheCmd(String theCmd, String TV, List all_TvType, btnNumber, Boolean keyboard) {
try {
...
} catch (Exception e) {
Log.d("", e.getMessage());
}

return null;
}
}
Поэтому вместо всех этих if/else я хотел бы создать переменную, содержащую любой из этих классов (ABC, NBC, CBS и т. д.), чтобы я мог делать вместо этого что-то вроде этого:

Код: Выделить всё

GlobalClass GC;

if (globalRoom.equals("ABC")) { btnNumber = 0; GC = new ABC(); }
else if (globalRoom.equals("NBC")) { btnNumber = 1; GC = new NBC(); }
else if (globalRoom.equals("CBS")) { btnNumber = 2; GC = new CBS(); }
else if (globalRoom.equals("REK")) { btnNumber = 3; GC = new REK(); }
else if (globalRoom.equals("DSR")) { btnNumber = 4; GC = new DSR(); }
else if (globalRoom.equals("LR2")) { btnNumber = 0; GC = new LR2(); }

if (btnName.equals("up")) {
GC.sendTheCmd("?action=volume_up", globalTV, all_TvType, btnNumber, false);
} else if (btnName.equals("down")) {
GC.sendTheCmd("?action=volume_down", globalTV, all_TvType, btnNumber, false);
} else if (btnName.equals("Keyboard")) {
GC.sendTheCmd("text?", globalTV, all_TvType, btnNumber, false);
} else if (btnName.equals("Other")) {
//Not sure what to make this icon
}
Я подумал, что можно сделать что-то вроде этого:

Код: Выделить всё

List

Подробнее здесь: [url]https://stackoverflow.com/questions/78253111/creating-global-class-holder[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»