Пожалуйста, не возражайте против моего вопроса, так как он немного теоретический.
На прошлой неделе я дал интервью для работы, где мне дали задание, и позже они задают вопрос, и мой дизайн был неисправен. Так что я не мог получить работу. Я делюсь своим дизайном. Пожалуйста, посмотрите на это и предложите мне, где я ошибаюсь, и какое решение будет хорошим для него.
Проблема
Это пакет для строительной компании, которая строит бассейны. Плавательный бассейн состоит из 2 частей бассейна и бассейна. Оба (бассейн и прилегающая территория) могут иметь прямоугольную или круглую форму (см. Прилагаемую картинку), поэтому будет 4 возможных формы. Программа должна рассчитать затененную площадь (от внешней поверхности бассейна до бетона).
**** Формула ** для расчета прямоугольной площади ** это Длина * Ширина * 2
Формула для расчета площади круга равна 2 * 2,1718
Мой дизайн
Я сделал интерфейс IPool с 2 методами (1) CalculateCircularArea (2) CalculateRectangularArea. Сделано 2 класса (CircularPool, RectangularPool), реализующих интерфейс IPool.
Вопрос
Что, если есть больше форм, кроме прямоугольных и круглых. Скажите, если есть еще 100 форм, какое решение будет рассматриваться в будущем проспекте? Здесь мой дизайн не был хорош, так как требовал изменения интерфейса, когда придет новая форма.