пример, на сокет приходит массив данных "create ellipse..." или "create square...", есть абстрактный класс QFigure и 2 его наследника QEllipse и QSquare, задача создать обьект и вернуть указатель на интерфейс.. Проблема: не существет единого формата сообщения, каждая фигура использует свой протокол инициализации своих параметров, фигур дофига..помогите прийти к элегантному решению:КодC++ (Qt)class QFigure{ ... static QFigure* create(QByteArray *data){ ???????????????????????????????????? } virtual draw() = 0;};class QEllipse : public QFigure{...};class QSquare : public QFigure{...};КодC++ (Qt)class QNetShapeCreator : QTcpSocket{public: QNetShapeCreator(){ connect(this, SIGNAL(readyRead()), this, SLOT(readyReadData())); } QDataArray *data; QList figures; readyReadData(){ *data = readAll(); figures.append(QFigure::create(data)); }};необходимо избежать необходимости редактирования статического методе create(QByteArray *data) абстрактного класса QFigure при добавлении новых фигур
|