Как задать свойства нескольким объектам разных классов через 1 метод? Есть у меня несколько объектов, которым нужно устанавливать язык отображения при получении его из бд. Как реализовать, что 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 вы сможете установить язык для нескольких объектов разных классов сразу.
Для того чтобы установить одно и то же свойство всем нужным объектам разных классов через один метод, можно воспользоваться паттерном наблюдатель (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 вы сможете установить язык для нескольких объектов разных классов сразу.