Задание № 5657

Студент

Гемузов Артем

Задача

Фабрика

Состояние

Завершено

Баллов

4

Дедлайн
14 марта
Назначено

21.03.2024, 10:44

Завершено

13.05.2024, 07:12

Необходимо разработать модуль фабрики, который по строчке создает объект требуемого типа.

Входные данные

Текстовый файл с описанием того, какие объекты нужно создать

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.

Действия