Моя симуляционная модель содержит средства на поверхности. Агент представлен class Agent
, их местоположения - class Point
, а сама поверхность - class Surface
. Каждая точка - это всего лишь пара чисел.моделирующие точки на поверхности
Для моделирования движения является агентом, я должен знать, какую поверхность он на (например, на торе, он никогда бы не попал конец земельного, но на цилиндре, он будет.)
Мой вопрос, является ли Я должен добавить к class Point
в качестве атрибута экземпляра ссылку на объект Surface
.
Если да, то class Point
усложняется, и эффективность страдает (вместо того, чтобы иметь дело с парами чисел, я буду иметь дело с парами цифр плюс ссылка). Это особенно раздражает, так как только один экземпляр class Surface
когда-либо создавался в одном прогоне программы.
Если вы этого не сделали, я не смог бы дать class Agent
a move
. Вместо этого мне пришлось бы моделировать движение агентов из внешнего класса, который знает как поверхностные, так и индивидуальные агенты. Этот подход кажется логически менее привлекательным.
Не можете ли вы хранить информацию о поверхности в «Агент»? Это похоже на самый естественный подход ко мне ... – senderle
На самом деле я неправильно читал сообщение и думал, что он имел в виду. Добавление в точку кажется странным ... – Spacedman
Да, да, добавление в Агенту прекрасно. Выбор действительно заключается в том, поддерживает ли здесь избыточную информацию. – max