В ООП время является свойством объекта? - PullRequest
0 голосов
/ 10 марта 2011

Я искал в Google в течение часа и не могу ничего найти (возможно, я ищу не ту вещь); Я уверен, что это где-то обсуждалось и объяснялось, но я не знаю, где это место ...

Я не понимаю отношения между Объектом и Временем. Я глубоко смущен этим принципом и тем, как его применять.

Допустим, я собираюсь создать программу ООП. В этой программе круги будут появляться в диапазоне 60 секунд.

Круг имеет следующие свойства.

var circle1 = new Circle();

circle1.color = "yellow";
circle1.size = "100";
circle1.text = "hello";

Временная шкала имеет следующие свойства:

var timeline1 = new Timeline();
timeline.currentSeconds = 0;

И методы:

timeline.start();
  1. Где лучше всего хранить данные о том, когда этот конкретный круг появится и исчезнет? Например, должно ли это быть circle1.startTime = 1, circle1.endTime = 10 ... и хранить времена, когда круг является видимым и существует как свойства круга?

  2. Лучше всего добавить EventListener к объекту или временной шкале? Должен ли объект Circle иметь прослушиватель событий, который прослушивает обновления currentSeconds?

По сути, я спрашиваю, как лучше всего взаимодействовать между этими двумя объектами?

Ответы [ 2 ]

4 голосов
/ 10 марта 2011

Это дизайнерское решение, которое будет зависеть от специфики приложения и мнения разработчиков.

  • Если у каждого круга есть свой период времени, и это всегда есть у кругов, я бы назвал его кружком.
  • Если у кругов есть иное, более общее использование (например, отображение, но не анимация), может иметь смысл иметь класс, расширяющий круг, и помещать туда данные о времени.
  • Если вы хотите, чтобы объект временной шкалы полностью отвечал за данные анимации, вы можете поместить эти данные туда.
  • Может иметь смысл иметь класс ObjectAnimation, который поддерживает ссылку на один круг и предоставляет дополнительную информацию о начале и конце

Я бы склонялся к мысли, что отображение объектов на основе времени будет держаться подальше от самих объектов. Вместо того, чтобы иметь прослушиватель событий времени, у Circle, скорее всего, будет функция renderCircle (), которая будет вызываться условно в зависимости от времени и свойств времени круга (где бы они ни находились).

0 голосов
/ 10 марта 2011

Второй.Время не является свойством вещи;это свойство вселенной.Но объекты могут быть затронуты и могут реагировать с течением времени ... и обычно, по крайней мере, знают об этом.

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