Задать вопрос
DarthRamone
@DarthRamone

Гуру ООП, помогите рассудить

Есть два объекта двух разных классов, которые должны работать с сетью. Пишу максимально отстраненно, не обессудьте. Так вот. Есть объект текущей интернет-сессии, с которым по идее должны работать по очереди два эти объекта, к примеру:

http = new httpSession();

object1 = new Class1();
object2 = new Class2();

object1.work(http);
object2.work(http);

Как было бы правильней, непосредственно передавать одну сессию последовательно в эти объекты, как показано в примере выше, или же внутри каждого объекта создавать собственную сессию и работать с ней?
  • Вопрос задан
  • 2545 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
@Vumik
Паттерн Singleton
1 объект сессии, возможность к нему обратиться практически с любого места в коде
Ответ написан
Комментировать
xappymah
@xappymah
Сессии в любом случае нужно создавать снаружи и передавать объектам, чтобы не перегружать объекты тем функционалом (создание интернет-сессий), для которого они не предназначены.

Далее, в данном конкретном абстрактном случае логичнее использовать одну сессию. По крайней мере не вижу причин создавать вторую.
Ответ написан
Комментировать
@f3ath
php
Правильнее — передавать объект сессии, а не создавать его внутри объектов-потребителей. Гуглить по словам «инверсия зависимостей».
Ответ написан
@linqu
Мне кажется это вопрос взаимодействия объектов. По логике вещей одно соединение — одна сессия. Но могут быть нюансы. Например два потока: управления и данных. Устанавливаются одновременно, работают параллельно. Тогда должен быть один общий объект сессии для обоих соединений (поток управления может изменить сессию, а поток данных может зависеть от новых данных). Общий итог: мне кажется все зависит от реального применения.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы