У меня есть несколько различных проектов Android, которые используют библиотеку, где я создал большинство общих классов. Один из классов - "commonSettingsAndFunctions", где я определил несколько статических строк и методов, которые будут использоваться. Пример:
public class commonSettingsAndFunctions {
public static String flurryCode = "MY_FLURRY_CODE";
public static final int APP_VERSION = 2;
public static final String API_URL = "http://mydomain/api.jsp"
public static String getAPIUrl(Context context, String parameters) {
// code
}
}
Однако теперь я придумал ситуацию, когда мне нужно изменить некоторые настройки для каждого проекта. Например, код флиппинга и версия приложения. API_URL всегда (пока) то же самое.
Какой лучший способ реализовать это? Один из вариантов, о котором я думал, - сделать commonSettingsAndFunction абстрактным, создать класс "commonSettingsAndFunctionsReal extends commonSettingsAndFunctions", а затем реализовать класс "Real" для каждого проекта? Другие возможности?
Я пришел из мира PHP, и там у меня были бы только настройки как класс, и сделайте это в каком-нибудь "глобальном файле include":
$common = new commonSettingsAndFunctions();
$common->flurryCode = "ABCD";
AppVersion - это то, что есть в AndroidManifest.xml, и вы можете получить доступ к этому из кода, поэтому вам не нужна ваша собственная версия. Как и в случае с API Flurry API, я всегда кладу шахту в свой файл strings.xml, чтобы я мог загрузить его, когда мне это нужно.