Я создаю последовательность из Step
объектов, которые различаются по типу и данным, содержащимся в нем.Например:
Объекты Step
в основном должны быть структурами, которые выглядят следующим образом
{ GRAB, CASCADE_ONE, FACEUP, SOMEOTHERDATA },
{ DROP, DECK, FACEDOWN, MOREDATA, ANDSOMEMORE },
{ MOVE, 34, 89 },
, где GRAB
, MOVE
и DROP
указывают StepType
:
typedef enum
{
GRAB,
DROP,
MOVE
}StepType;
Как видите, в зависимости от StepType
каждое из этих структур имеет переменное число полей данных после StepType
.
Я планирую перебрать последовательность этих структур и выполнитьконкретное действие, основанное на поле StepType
.Моя первая догадка - это должны быть объекты классов, производных от абстрактного Step
класса, т. Е. Я должен создать GrabStep
класс, MoveStep
класс и DropStep
класс.
Является ли этохороший дизайн, и если так, я должен создать их, используя фабричный метод?Если метод фабрики - это путь, то как инициализировать поля внутри объектов?