LINUX.ORG.RU

История изменений

Исправление 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 - переносы, повороты и т.п.