проблема дизайна в обработке динамического ввода от конечного пользователя - PullRequest
0 голосов
/ 03 марта 2019

Я пишу заявку на различные геометрические типы топливных баков.

У меня проблема с конструкцией, что только во время выполнения я получу точный тип бака от конечного пользователя;и я не знаю, как создавать / обрабатывать динамический объект на стороне сервера.

Например, танк может иметь 3 геометрических типа головки: коническая, выпуклая и плоская.Каждый тип головки должен проверяться по-разному.

Я создал родительский класс с именем Head, который имеет все общие параметры для всех геометрических типов головки (диаметр, толщина и т. Д.).Каждый дочерний класс (Conical, Dished и Flat) расширяет Head и имеет свои собственные переменные экземпляра.

Конечный пользователь, например, выберет резервуар с коническими головками и введет всенеобходимые параметры и отправить его на сервер для проверки.

На этом этапе я застрял.Я не знаю, как обрабатывать динамические данные.Я получил предложение использовать Factory шаблон проектирования;но поскольку каждый класс имеет разные переменные, я не думаю, что это правильное направление.

код без конструктора и методы get / set

public class Head {
    private float headThickness=0;
    private float headThicknessTolerance=0;

    private ShapeOfHead headShape;
    private float knuckleRadius=0;
    private int numberOfHeadPieces=4;
    private HeadSide headSide;

    private Figure8_1WeldingDetails headLongitudinalWeld;
    private Figure9_1WeldingDetails headCircumferentialWeld;

    private Bracing headBracing;
}

public class DishedHead extends Head {
    private float dishedHeadDepth;  
}

public class ConicalHead extends Head {
    private float conicalHeadHeight;
}
...