Witam!
Mój projekt składa się (m.in) z Mediatora, wzorca Polecenia, obiektów GUI (okienek) i pozostałych obiektów (Firma, Umowa itp). Obiekty GUI nie obsługują interakcji z użytkownikiem, gdyż jest to delegowane do wzorca Polecenie. Problem pojawia się przy wykonywaniu poleceń, które muszą mieć dostęp do prywatnych składowych GUI. Jeżeli kilka poleceń konkretnych będzie korzystało z obiektu GUI, to GUI musi zaprzyjaźnić się z każdym z nich, a to niestety prowadzi do utworzenia dużej listy klas zaprzyjaźnionych. Drugi sposób rozwiązania tego problemu to delegowanie wykonania tych problematycznych poleceń konkretnych do Mediatora. GUI musi zaprzyjaźnić się tylko z mediatorem, ale z drugiej strony tworzy się brzydki duży monolit no i polecenia konkretne, których jedynym zadaniem jest tylko wywołanie operacji Mediatora. Jak uważacie, co będzie mniej szkodliwe: duża lista klas zaprzyjaźnionych, czy monolit? Jeżeli ktoś ma mądrzejszy pomysł (co jest bardzo prawdopodobne ;-)), to również byłbym bardzo wdzięczny za podpowiedź.
Pozdrawiam
Aha. Projekt będzie realizowany w C++, czyli przyjaźnie nie są dziedziczone.