Есть ли альтернатива дружбе в следующем сценарии?
У меня есть класс Window
, который представляет окно пользовательского интерфейса.Кроме того, класс WindowManager
, реализованный как одноэлементный, управляет всеми объектами окна в моем приложении (отображает пользовательский интерфейс, отправляет события и т. Д.)метод и функции одиночного экземпляра для визуализации пользовательского интерфейса и отправки события пользовательского интерфейса.
Я также хотел бы, чтобы объекты Window
регистрировались в WindowManager
во время создания и отменялись при уничтожении.Методы WindowManager::register
и WindowManager::deregister
будут либо частными, либо защищенными, потому что я не хочу, чтобы клиенты (кроме Window
объектов) могли использовать этот интерфейс.
Есть ли способ избежать дружбымежду Window
и WindowManager
в этом случае?Возможно, совершенно другой способ достижения подобных результатов?