Я довольно долго недоумевал об этом. (Простите меня, я новичок) Есть ли хороший шаблон дизайна, где экземпляры классов взаимодействуют вместе без вмешательства суперкласса или, по крайней мере, на минимальном уровне? Я хотел бы создать экземпляры, которые полностью независимы. Но для того, чтобы взаимодействовать с другими, они должны иметь представление об окружающем мире. У меня такое чувство, что должен быть элегантный способ прямого доступа к методам других случаев .. или? Проще говоря: мне нужна ситуация, когда мой класс среды создает мои экземпляры, а затем вызывает interactive().Экземпляры экземпляров, работающих вместе напрямую
ответ
Композиция - это то, что вам нужно, как и вы. Постарайтесь максимально упростить связь, чтобы поддерживать строго объектно-ориентированный подход.
Я не совсем понимаю ваш вопрос. Но посмотрите на эти строки кода:
Environment env = new Environment();
env.interact();
Или:
EnvironmentInteracter envInt = new EnvironmentInteracter(env);
envInt.makeInteractionHappen();
Где
public class EnvironmentInteracter
{
private Environment env;
public EnvironmentInteracter(Environment env) { this.env = env; }
public void makeInteractionHappen()
{
env.interact();
}
}
Похоже на то, что меня перекладывает проблема. В этом случае нам еще нужен класс «агент» (EnvironmentInteracter), чтобы вести процесс взаимодействия, не согласны ли вы? – Leto
Да, мой пример слабый. Но это дает вам представление о том, как работать с несколькими классами вместе. –
- 1. экземпляры экземпляров экземпляров в Rails
- 2. Несколько потоков, работающих вместе
- 3. Группировка экземпляров/символов вместе
- 4. AWS экземпляры обновления обновления для нескольких экземпляров
- 5. Решение этих jqueries, работающих вместе
- 6. Как создать экземпляры экземпляров динамически
- 7. Защитить экземпляры экземпляров многопоточного доступа
- 8. Модельные профили как экземпляры экземпляров
- 9. несколько экземпляров tinyMce, не работающих в chrome
- 10. Семафор для экземпляров CMD, работающих в параллельном
- 11. Рабочий пример jeditable и автозаполнения, работающих вместе
- 12. Prototype и JQuery не плагинов, работающих вместе
- 13. mod_rewrite в нескольких htaccess, работающих вместе
- 14. Ember.js - Получение маршрутов и моделей, работающих вместе
- 15. Несколько взаимодействий, работающих независимо, но не вместе
- 16. Инкрементные экземпляры экземпляров в экземплярах классов
- 17. Пользовательские экземпляры экземпляров модели в django admin
- 18. Экземпляры экземпляров при вызове статических методов
- 19. AWS EC2 Экземпляры: запуск нескольких экземпляров
- 20. Можно ли ограничивать экземпляры экземпляров только временными?
- 21. Как экземпляры экземпляров обрабатываются через представления?
- 22. как генерировать экземпляры экземпляров атрибутов по запросу?
- 23. Несколько экземпляров video.js - Остановить все игровые экземпляры
- 24. Как аннотировать экземпляры типов (вместо экземпляров класса)?
- 25. Условные экземпляры экземпляров используют значение элемента данных
- 26. Поддерживаемые экземпляры экземпляров экземпляра Ubuntu hvm?
- 27. Экземпляры экземпляров Backend без каких-либо бэкендов
- 28. Как слить два набора weka Экземпляры вместе
- 29. Как связать экземпляры трех классов вместе?
- 30. Число экземпляров CLR и GC, работающих на машине?
Вам действительно нужно задать более конкретный вопрос. Взаимодействовать как? Вы посмотрели на Spring Framework? Он имеет множество механизмов, которые объединяют независимые классы, используя аннотацию и отражение. –
Спасибо, я обязательно проверю это. «взаимодействие» может быть чем угодно, подумайте: монстры в игре, каждая из которых обладает уникальным поведением. Соединяясь и не говоря уже об этом, возникает цепная реакция, приводящая к кровавому беспорядку. – Leto
Просто наткнулся на шаблон дизайна медиатора, который, кажется, является предпочтительным способом настройки. Я предполагаю, что по определению в ООП нет никакого способа, чтобы «коллеги» обменивались информацией напрямую. Я прав? – Leto