Я пишу приложение для Android, но я планирую построить это и для ПК. Поэтому я хочу использовать как можно больше кода. Но в некоторых случаях мне приходится использовать функции, специфичные для платформы. Например для регистрации-вывода и загрузки ресурсов.
Я ищу простое решение для абстрагирования этих функций. Мое текущее решение состоит в том, что я написал этот класс
public class LoggerAndroid{
public static void debug(String tag, String msg) {
Log.d(tag, msg);
}
public static void error(String tag, String msg) {
Log.e(tag, msg);
}
public static void info(String tag, String msg) {
Log.i(tag, msg);
}
public static void warn(String tag, String msg) {
Log.w(tag, msg);
}
}
и этот
public class Logger extends LoggerAndroid{
}
В моем коде я использую выражения типа
Logger.info("test", "HelloWorld");
и для написания приложения для ПК я пишу другой класс журнала с теми же методами и позволяю Logger наследовать от него.
Таким образом, очень мало изменений, и использование log-методов все еще легко. Но я думаю, что поддерживать код и быть довольно жестким.
Есть ли лучшие решения для этого?