У меня есть задача, в которой мне нужно сделать хорошо спроектированную иерархию для классов разной геометрии c фигуры:
- круг
- окружность
- кольцо
- прямоугольник
- треугольник
- et c.
Сначала я сделал абстрактный класс Figure
следующим образом:
abstract class Figure
{
public abstract double Area { get; }
public abstract double GetArea();
}
Я планировал, что каждый другой класс, описывающий конкретную фигуру, будет наследником класса Figure
. И идея Area
в Figure
работает прямо перед тем моментом, когда я понимаю, что Circumference
не имеет Area
.
И я не могу решить, что делать дальше. : описывает другой абстрактный класс AbstractCircle
, удалите это свойство и метод Area
из Figure
или просто установите Area = 0
в Circumference
. Или, может быть, просто сделать Circumference
наследником Circle
, а затем установить Area = 0
?
Это логически правильно? Я имею ввиду, будет ли этот лог c понятен людям, которые будут читать эту программу?
Буду рад увидеть советы и комментарии.