Plug-in for AutoCAD (WPF). Edits layers, lines, dots and circles. (Весь заявленный функционал работает)
TODO:
Не принято решение по реализации ООП.
Плагин работает с 4 объектами AutoCAD'a: Линия, Прямая, Точка и Слой.
Логика работы со слоем отличается от всех остальных, поэтому работаем с ним отдельно.
В рамках этого плагина Прямая, Линия и Точка имеют два общих свойства и несколько похожих методов.
Используемые свойства Точки: координаты, ID.
Используемые свойства Линии: координаты двух точек(начало и конец), ID.
Используемые свойства Окружности: координаты центра, радиус, ID.
Используемые методы: Добавить, Удалить, Получить значения свойств.
Метод Удалить удаляет объект с чертежа в AutoCAD, в качестве аргумента получает ID удаляемого объекта. Если делать общий класс, то этот метод вместе со свойством ID описываем там.
Метод Добавить добавляет объект на чертеж, в качестве аргументов принимает свойства создаваемого объекта кроме ID. Значит если описывать метод в общем классе, то надо делать 3 перегрузки. => количество кода не уменьшится, а необхдимость создания классов-наследников отдпает.
Варианты решений:
- Один Суперкласс. Содержит все свойства и все методы.
- Три независимых класса. Каждый знает только все о себе.
- Общий класс знает ID и метод Удалить. Наследники знают остальные свои методы и свойства.