Вручную устанавливая положение объекта или объект делает все это? - PullRequest
0 голосов
/ 11 июня 2010

Я застрял в мыслях о том, как лучше всего установить положение сегмента линии, у меня есть класс Line (длина, угол, предыдущий), вызываемый из класса Polygon.1002 *

Теперь, это лучшая практика или я должен ее делать:

Polygon.addLine(length:Number, angle:Number):void {
    var previous = (_line.length == 0) ? null : _line[_line.length - 1]; // Array containing all Lines
    var line:Line = new Line(length, angle, previous);
    line.x = (_line.length == 0) ? 0 : previous.end.x;
    line.y = (_line.length == 0) ? 0 : previous.end.y;
    /**/
}

Следует добавить, что Line используется только Polygon в этом приложении.

1 Ответ

2 голосов
/ 11 июня 2010

Редактировать: полностью переписал мой ответ на основе ваших комментариев ...

Хорошо, так что у вас всегда есть класс Line, и вопрос в том, куда поместить логику для добавления линии в многоугольник.

Ваш Line CT или предполагает наличие необязательного предшественника Line объекта.Если вы измените это так, что CTor принимает дополнительный Point, будет меньше связи.Другие классы, которые могут появиться в будущем, также могут строить линии, используя начальную точку, длину и угол.Таким образом, подход CTor выглядит хорошо с этой точки зрения.

Кроме того, многоугольник - это в основном набор связанных линий (и дуг, как следует из вашего комментария), поэтому логика для вычисления конечной точки линии действительно соответствуетв класс Line.Опять же, таким образом, возможно, другим пользователям Line не придется дублировать код Polygon.

Как уже упоминалось, существует третий способ:
Вы можете, например, создать LineFactory класс, который создает Line объект на основе начальной точки, длины и угла.Затем эта фабричная функция будет выполнять вычисления и устанавливать начальную и конечную точки конца линии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...