Moim bezpośrednim kontekstem jest platforma Windows, jednak mogę zadać to samo pytanie podczas pracy nad UI dla innego hosta GUI. Pracuję w dość prostym C++ winapi, bez ATL/MFC. Nie jestem zainteresowany wykorzystaniem globali, ale raczej bardziej akceptowaną praktyką wykonywania zadań związanych z Windowsem z danymi "Application".Jaki jest poprawny/zaakceptowany projekt dostępu do zmiennych aplikacji z klasy okna?
Rozważałem wprowadzenie do tego stylu mvvw lub mvc, ale zanim pójdę dalej, chciałbym opinii społeczności, z tego co wyobrażam sobie niezliczoną liczbę doświadczonych programistów i projektantów.
Moja klasa aplikacji ma członków okien. Czy klasa okna powinna być zaprojektowana z odniesieniem do aplikacji? Czy jest lepszy sposób niż to?
Wskaźnik do klasy 'TThread' przechodzi w wątek Local Storage. Klasa 'TThread' ma wskaźnik do obiektu' TApplication' jako jego element danych. W każdym razie ma sens, aby uczynić 'TApplication' globalnym, ponieważ jego konstruktor zapewnia miejsce do przeprowadzenia inicjalizacji przed wywołaniem' main'. – lapk
Wiem, że ludzie podejmują wiele wysiłków, aby uniknąć zmiennych globalnych (z powodu), ale czasami jest to mechanizm, który najlepiej odzwierciedla rzeczywistość. Jeśli zawsze istnieje jedna i tylko jedna instancja "aplikacji" według projektu, to dlaczego * nie * sprawiają, że jest globalna? –
Albo Singleton ... http://en.wikipedia.org/wiki/Singleton_pattern. Ale wolałbym przekazać wszystkie moje obiekty Window jako odniesienie do Modelu, w twoim przypadku, który byłby obiektem Application AFAIU. –