Jestem w fazie zakończenia dużego projektu, który ma kilka dużych komponentów: pozyskiwanie obrazu, przetwarzanie obrazu, przechowywanie danych, fabryczne operacje wejścia/wyjścia (projekt automatyzacji) i kilka innych.MVVM i unikanie monolitycznego obiektu Boga
Każdy z tych komponentów jest rozsądnie niezależny, ale aby projekt działał jako całość, potrzebuję co najmniej jednego wystąpienia każdego komponentu. Każdy komponent ma również ViewModel i View (WPF) do monitorowania stanu i zmiany rzeczy.
Moje pytanie jest najbezpieczniejszą, najbardziej wydajną i najbardziej konserwatywną metodą tworzenia wszystkich tych obiektów, subskrybowania jednej klasy do wydarzenia w innym, oraz posiadania wspólnego ViewModel i widoku dla wszystkich tego.
Czy byłoby najlepiej, gdybym miał klasę nazywaną Bogiem, która ma prywatną instancję wszystkich tych obiektów? Robiłem to w przeszłości i żałowałem tego.
A może byłoby lepiej, gdyby Bóg polegał na instancjach Singleton tych obiektów, aby uzyskać przewracanie piłki.
Alternatywnie, powinien Program.cs (lub gdziekolwiek jest Główny (...)) utworzyć wszystkie te elementy i przekazać je do Boga jako parametry, a następnie niech (snicker) i jego ViewModel radzą sobie z konkretami biegania te projekty.
Wszelkie inne sugestie, które chciałbym usłyszeć.
Dziękujemy!
Próbowałem tam, gdzie nie było żadnej innej strony, każda próba, z wyjątkiem ostatniej, była w pewnym stopniu porażką, a na końcu ustalono coś bardzo zbliżonego do wzorca ViewModelLocater. Jestem pewien, że struktury innych firm, które napisali inni faceci, zaoszczędzą mi dużo pracy, ale byłem już za późno na ten projekt. Ta odpowiedź jest dobrym pośrednim. Rozumiem, że nauczyłaś się też w trudny sposób. Tak czy inaczej, mamy miesiące później, ale - dziękuję! – bufferz