Вопрос по архитектуре приложения
Здравствуйте.
Помогите найти верное решение.
Есть главный класс MainClass.
Есть класс HttpEngine, реализующий http-клиента
class HttpEngine : public QObject {
...
public:
void get(...);
void post(...);
signals:
void answer_received(QByteArray, QString);
...
};
Есть классы AManager, BManager и CManager, создающиеся в MainClass. Каждый из них должен вызывать методы get/post класса HttpEngine и ожидать ответа, соединившись с его сигналом answer_received.
Варианты:
1. Агрегировать HttpEngine в каждый из классов *Manager и дергать методы каждого уникального экземпляра.
2. Создать в MainClass экземпляр HttpEngine и передавать в конструкторах *Manager классов указатель на него.
В случае варианта №2 каждый раз придется делать disconnect сигнала answer_received, чтобы не вызывались слоты двух других классов, так же ждущих этот сигнал.
Как будет правильней и почему?