@remyfox

Как задать свойства нескольким объектам разных классов через 1 метод?

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

Поставил сложность только из-за того, что не могу сформулировать нормально вопрос
  • Вопрос задан
  • 227 просмотров
Пригласить эксперта
Ответы на вопрос 2
php666
@php666
PHP-макака
Пусть объекты, требующие языка, сами лезут за языком (реализовать в виде трейта).
Ответ написан
@kolya7k
Тут принципиально важно сначала определиться с двумя вещами:
1) Известны ли все экземпляры классов, которым нужно сообщать о смене языка или их много и они создаются из самых разных мест?
2) Как часто меняется язык, насколько велика сложность его «узнавания» и как работают с языком те классы.

Соотвественно, как варианты, которыми можно решить задачу:
1) Трейты (как вариант множественного наследованиях), на мой взгляд неочевидно и сложно, не переносимо.
2) Наследование от класса Localized, если можно логично встроить в цепочку наследования и код установки языка для каждого класса-наследника похожий.
3) Интерфейсы, если наследование невозможно ИЛИ код/логика установки языка отличается для разных классов.
4) Callback-функции, каждый класс, которому нужна информация о смене языка может в конструкторе регистрировать Callback в менеджере языков, а в деструкторе - удалять.
5) Обновление статической переменной в классе-менеджере языков и просто использование её в классах, которым нужен язык.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Affor Москва
от 135 000 руб.
от 80 000 до 120 000 руб.
Zoon Москва
от 140 000 до 220 000 руб.