История изменений
Исправление no-such-file, (текущая версия) :
Можно подробнее?
Shape - это фигура, набор точек, соединенных линиями с некоторой кривизной, будь то прямая, круг или неправильный семиугольник с гранями в виде кривых безье. Для упрощения работы нужны фабрика которая будет делать специфичные фигуры, например круг по центру и радиусу, а не по двум точкам на окружности + кривизна.
Возник вопрос: как связаны объекты и калькулятор?
Калькулятор, это отдельный класс объектов, которые получая объект shape могут производить над ним нужные вычисления. Отдельный класс нужен для того, чтобы не хардкодить алгоритмы внутри Shape. Фабрика объектов-калькуляторов получив объект shape должна сделать соответствующий конкретной фигуре объект-калькулятор. Кроме того понятие «центр» для сложных фигур можно трактовать по-разному и для этого тоже могут использоваться разные объекты-калькуляторы.
Т.е. в Shape не должно быть никаких Center() или Square(), там должны быть только методы для доступа к точкам/кривым - один класс, одна задача. В данном случае хранение информации о форме отдельный класс, вычисления отдельный класс, а ещё отдельно можно сделать например класс для трансформации объекта Shape - переносы, повороты и т.п.
Исправление no-such-file, :
Можно подробнее?
Shape - это фигура, набор точек, соединенных линиями с некоторой кривизной, будь то прямая, круг или неправильный семиугольник с гранями в виде кривых безье. Для упрощения работы нужны фабрика которая будут делать специфичные фигуры, например круг по центру и радиусу, а не по двум точкам на окружности + кривизна.
Возник вопрос: как связаны объекты и калькулятор?
Калькулятор, это отдельный класс объектов, которые получая объект shape могут производить над ним нужные вычисления. Отдельный класс нужен для того, чтобы не хардкодить алгоритмы внутри Shape. Фабрика объектов-калькуляторов получив объект shape должна сделать соответствующий конкретной фигуре объект-калькулятор. Кроме того понятие «центр» для сложных фигур можно трактовать по-разному и для этого тоже могут использоваться разные объекты-калькуляторы.
Т.е. в Shape не должно быть никаких Center() или Square(), там должны быть только методы для доступа к точкам/кривым - один класс, одна задача. В данном случае хранение информации о форме отдельный класс, вычисления отдельный класс, а ещё отдельно можно сделать например класс для трансформации объекта Shape - переносы, повороты и т.п.
Исходная версия no-such-file, :
Можно подробнее?
Shape - это фигура, набор точек, соединенных линиями с некоторой кривизной, будь то прямая, круг или неправильный семиугольник с гранями в виде кривых безье. Для упрощения работы нужны фабрики которые будут делать специфичные фигуры, например круг по центру и радиусу, а не по двум точкам на окружности + кривизна.
Возник вопрос: как связаны объекты и калькулятор?
Калькулятор, это отдельный класс объектов, которые получая объект shape могут производить над ним нужные вычисления. Отдельный класс нужен для того, чтобы не хардкодить алгоритмы внутри Shape. Фабрика объектов-калькуляторов получив объект shape должна сделать соответствующий конкретной фигуре объект-калькулятор. Кроме того понятие «центр» для сложных фигур можно трактовать по-разному и для этого тоже могут использоваться разные объекты-калькуляторы.
Т.е. в Shape не должно быть никаких Center() или Square(), там должны быть только методы для доступа к точкам/кривым - один класс, одна задача. В данном случае хранение информации о форме отдельный класс, вычисления отдельный класс, а ещё отдельно можно сделать например класс для трансформации объекта Shape - переносы, повороты и т.п.