Какой принцип работы в Shared Preferences?
Если SharedPreferences.Editor это интерфейс, то как мы тогда делаем объект editor?
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
// some code
editor.apply();
Ответы (1 шт):
Автор решения: Vadik
→ Ссылка
Рассмотрим такой пример, пусть у вас есть интерфейс Animal и два класса, которые имплементируют этот интерфейс:
interface Animal {}
class Cat implements Animal {}
class Dog implements Animal {}
Кроме этого, предположим, есть класс-фабрика Animals для создания экземпляров животных:
class Animals {
static Animal getInstance(String type) {
switch (type) {
case "cat":
return new Cat();
case "dog":
return new Dog();
default:
throw new UnsupportedOperationException();
}
}
}
Теперь, когда вы создаете животных через фабрику, то вы можете и не знать, какими именно конкретными классами вы оперируете. Вы только видите, что создали какого-то Animal и работаете с ним, как с Animal:
Animal animal = Animals.getInstance("cat");
Примерно то же самое и с SharedPreferences.