У меня есть интерфейс
Shape
, в котором определены несколько переменных (Area, Perimeter) и несколько методов (GetArea, GetPerimeter).
После этого я создаю фигуры, наследуя вышеописанный интерфейс (например:
public class Square : Shapes
).
Но вот при выводе этих фигур (т.е. информации о них, такой как периметр, площадь и т.д.) у меня возникает вопрос: как это сделать красиво и правильно?
Вывод фигур я организовал через
switch
:
public class Show
{
public static void Display(Shape shape)
{
string shp = shape.ToString();
switch (shp)
{
case "Shapes.Square":
Console.WriteLine($"This figure is square. ■\nIts area is {Shape.GetArea(shape)}.\nIts perimeter is {Shape.GetPerimeter(shape)}.\n\n");
break;
default:
break;
}
}
}
Но может случится такое, что этих фигур будет очень много, и для каждой прописывать свой
case
будет издевательством. Вот тут я и задумался над каким-нибудь архитектурным паттерном, который поможет грамотно организовать все это.
P.S. Паттерны смотрел на сайте refactoring.guru, но так и не надумал, какой же лучше
https://refactoring.guru/ru/design-patterns/catalog