shape ничего не должен знать про rectangle
shape — это произвольная форма (у которой есть точки начало и конец), а этот метод получает ограничивающую рамку, которая является rectangle (у которой так же есть точки начало и конец)
ну, произвольная форма не должна знать о конкретной
*неправильно выразился DiagonalShape — это форма, у которой есть начало и конец, которые образуют эту форму (например любая фигура в паинте), а этот метод получает ограничивающую рамку, которая является RectangleShape, который так же является формой с началом и концом
Тогда им нужен какой-то абстрактный общий класс родительский
DiagonalShape — это уже абстрактный для конкретных 😅
Хочу, чтобы все формы могли быть преобразованы в прямоугольник из одного места в коде
ну вот он не должен знать о своих потомках значит
Придётся писать этот код для каждой формы, коих в паинте десятки?
как вообще можно понять диагонал ректангл с токи зрения математики?
Когда в паинте рисуешь фигуры, from — это точка, где была нажата мышь, а to — это точка, где отпущена
ну скорее всего для каждой формы будет свой код для приведения к диагонал-ректангл
у тебя должно быть fromDiagonalShape в rectangle, а не наоборот)
я несколько дней писал этот код, и когда дописал, получил эту ошибку
Это как раз для математики нужно
это с точки зрения проектирования неправильно у тебя родительский компонент должен знать обо всех возможных потомках, чего не должно быть и в то же время циклические зависимости появляются
я использую ООП, чтобы можно было мысленно визуализировать код, и никакой логической ошибки в этом утверждении я не вижу
раз тебе нужен метод чтоб получить ограничивающий прямоугольник, то тебе полюбому придется писать отдельный код для разных формм
Переделать инрархию классов, она неправильная и циклическая
некоторые формы, например линия 🌚, работают так же, как прямоугольник
если они работают одинаково, этот код должен быть в родителе и всё
Тут как раз не ооп а просто попытка использовать наследование Это еще не ооп
я как раз это и сделал 👀
ты в родителя запихал что-то про ребёнка
Почитай про принципы SOLID
я беспринципный
Тогда живи с ошибками и гемороем при написании кода и еще большим гемороем при его изменении И не забывай почаще писать в чат что-бы об этом напоминали))
У самурая нет цели, есть только путь
Обсуждают сегодня