Работая над своими хобби-проектами, я разделял код на фоновые операции и операции с графическим интерфейсом. Таким образом, я получаю библиотечные объекты, которые выполняют реальную работу, и объекты графического интерфейса, которые представляют меню, фреймы и тому подобное. Каждый раз меня беспокоит то, что у меня много объектов, которые нужно знать о других объектах. Например, объект панели инструментов должен знать о мэйнфрейме, а главное меню должно знать как о фрейме, так и о панели инструментов, поэтому в итоге я передаю ссылки на множество объектов через конструкторы. Пока он работает, я не могу представить Windows или код Дарвина, передающий 100 ссылок на другие компоненты.
Итак, мой вопрос: каков предпочтительный способ сохранения объектов без передачи множества ссылок друг на друга?