Я думаю, что сам шаблон будет ближе всего к Шаблон посредника . Вместо Entity
, напрямую связывающегося с другим Entity
, Мир действует как посредник между этими Entities
. CollisionData
- это просто абстракция получения данных, которые вам понадобятся для обработки этой ситуации.
Вы можете получить более чистый результат, предоставив метод в Entity
, например:
public BoundingRectangle getBoundingRectangle();
И затем, регистрация только Entity
с помощью объекта World
:
world.registerEntity(this);
Тогда мир просто использует entity.getBoundingRectangle();
для своей работы. Это также похоже на шаблон реестра . Ваш нынешний способ вполне приемлем, это просто может составить более ясную Диаграмму Последовательности того, что происходит (прокси-объект не нужен, чтобы связать их вместе), и он объединяет только два класса, а не три.