Необходимо разработать модуль фабрики, который по строчке создает объект требуемого типа.
Текстовый файл с описанием того, какие объекты нужно создать
point 1 2
rect 1 2 3 4
line 10 10 20
circle 10 10 5
Поддерживаемые записи во входном файле:
point x y
— точка в координатах (x, y)
rect x1 y1 x2 y2
— прямоугольник, заданный точками (x1, y1)
и (x2, y2)
line x1 x2 x2 y2
— линия, заданная точками (x1, y1)
и (x2, y2)
circle x y r
— круг с центром в (x, y)
и радиусом r
У каждого типа должен быть виртуальный метод Draw
, который выводит в консоль название типа и его основные параметры. Например, у точки: Point at (10, 20)
и т.д. После создания всех объектов, описанных во входном файле, нужно вызвать Draw
для каждого из них. Пример вывода:
point at (10, 20)
circle at (100, 300), rad = 50
rect at (100, 200), (200, 300)
Необходимо создать все объекты, описанные в полученном на вход файле с помощью модуля фабрики, который по текстовой строчке создает и возвращает объект нужного типа, и после этого вызвать Draw для каждого из этих объектов.
Задача должна быть реализована на базе фреймворка OOC.