私のシミュレーション モデルには、サーフェス上のエージェントが含まれています。エージェントは で表されclass Agent
、その場所は で表され、class Point
表面自体は で表されclass Surface
ます。各ポイントは、実際には単なる数字のペアです。
エージェントの動きをモデル化するには、エージェントがどのサーフェス上にいるかを知る必要があります (たとえば、トーラスでは土地の端にヒットすることはありませんが、円柱ではヒットします)。
私の質問は、オブジェクトclass Point
への参照をインスタンス属性として に追加する必要があるかどうかです。Surface
もしclass Point
そうすると、より複雑になり、効率が低下します (数値のペアを扱う代わりに、数値のペアと参照を扱うことになります)。class Surface
これは、1 回のプログラム実行でインスタンス化されるインスタンスが 1 つしかないため、特に厄介です。
class Agent
そうしないと、move
メソッドを提供できません。代わりに、サーフェスと個々のエージェントの両方を認識している外部クラスからエージェントの動きをモデル化する必要があります。このアプローチは、論理的にあまり魅力的ではないようです。