Как задать свойства нескольким объектам разных классов через 1 метод? Есть у меня несколько объектов, которым нужно устанавливать язык отображения при получении его из бд. Как реализовать, что 1 объект устанавливал сразу всем нужным объектам язык ыыы)
Поставил сложность только из-за того, что не могу сформулировать нормально вопрос

21 Авг 2019 в 06:58
192 +1
0
Ответы
1

Для того чтобы установить одно и то же свойство всем нужным объектам разных классов через один метод, можно воспользоваться паттерном наблюдатель (Observer). Создайте интерфейс наблюдателя, который будет содержать метод для установки языка отображения. Затем реализуйте этот интерфейс в классах ваших объектов и вызовите метод установки языка отображения для каждого объекта в методе вашего наблюдателя.

Примерно так это может выглядеть на Java:

Создайте интерфейс Observer с методом setLanguage:public interface Observer {
void setLanguage(String language);
}Реализуйте интерфейс Observer в ваших классах объектов, например:public class User implements Observer {
private String language;
@Override
public void setLanguage(String language) {
this.language = language;
}
// Другие методы класса User
}
public class Settings implements Observer {
private String language;
@Override
public void setLanguage(String language) {
this.language = language;
}
// Другие методы класса Settings
}Создайте класс наблюдателя, который будет устанавливать язык у всех объектов:public class LanguageSetter {
public void setLanguageForAll(String language, Observer... observers) {
for (Observer observer : observers) {
observer.setLanguage(language);
}
}
}Используйте класс LanguageSetter для установки языка для всех нужных объектов:public class Main {
public static void main(String[] args) {
User user = new User();
Settings settings = new Settings();
LanguageSetter languageSetter = new LanguageSetter();
languageSetter.setLanguageForAll("English", user, settings);
}
}

Таким образом, через метод setLanguageForAll класса LanguageSetter вы сможете установить язык для нескольких объектов разных классов сразу.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир