Я создаю библиотеку, и в этой библиотеке она будет содержать фигуры, точнее обычные и неправильные многоугольники, эта библиотека должна позволять пользователям не только использовать мои фигуры, но и во время выполнения иметь возможность создавать свои собственные.
На данный момент у меня есть несколько фигур, представленных так:
Polygon
|- PolygonRegular
|- Square
|- Circle
|- EquilateralTriangle implements Triangle
|- PolygonIrregular
|- Trapeze
|- IsoscelesTriangle implements Triangle
Теперь в данном сценарии, скажем, я, как пользователь, хочу создать свой собственный многоугольник, в этом случае «ScaleneTriangle», в котором также будет реализован интерфейс Triangle, моя библиотека должна легко предоставить инструменты, необходимые для создания этой «фабрики». «создавать фигуры.
//Though I don't know the code, what I wanted to achieve, would be something very close to:
Point2D[] points = new Point2D[]{
new Point2D.Float(0f, 0f),
new Point2D.Float(0.25f, 0f),
new Point2D.Float(1f, 1f),
};
ContentFactory.create(PolygonIrregular.class, "ScaleneTriangle", points);
Тем не менее, я понятия не имею, как я могу создать ContentFactory, подобную этой, которая создает классы во время выполнения, как будто это было волшебство ... Я также буду волшебным образом создавать экземпляры этих классов тоже.
Чтобы дать больше понимания, если проблема не очень прояснилась:
Представьте, что я пользователь, поп-холст, нарисуйте новую форму. Подтверждает. Кнопка Представление создается с этой новой формой. Каждый раз, когда пользователь нажимает кнопку buttonRepresentation, создается элемент в форме.