Sono nella fase di completamento di un progetto di grandi dimensioni con diversi componenti di grandi dimensioni: acquisizione immagini, elaborazione immagini, memorizzazione dati, I/O di fabbrica (progetto di automazione) e molti altri.MVVM ed evitare oggetto Monolithic God
Ciascuno di questi componenti è ragionevolmente indipendente, ma per l'esecuzione del progetto nel suo complesso è necessaria almeno un'istanza di ciascun componente. Ogni componente ha anche un ViewModel e View (WPF) per monitorare lo stato e cambiare le cose.
La mia domanda è il metodo più sicuro, più efficiente e più gestibile per creare un'istanza di tutti questi oggetti, sottoscrivere una classe per un evento in un altro e avere un ViewModel e una vista comuni per tutto ciò.
Sarebbe meglio se ho una classe chiamata Dio che ha un'istanza privata di tutti questi oggetti? L'ho fatto in passato e me ne sono pentito.
O sarebbe meglio se Dio si affidasse alle istanze di Singleton di questi oggetti per far rotolare la palla.
In alternativa, se Program.cs (o dovunque sia Main (...)) istanzia tutti questi componenti e li passi a Dio come parametri e poi Lascio che lui (snicker) e il suo ViewModel si occupino dei dettagli della corsa questo progetti.
Qualsiasi altro suggerimento mi piacerebbe sentire.
Grazie!
Ho provato ogni approccio non di terze parti là fuori, ogni tentativo tranne l'ultimo è in qualche modo un fallimento, e alla fine si è risolto su qualcosa molto vicino al tuo modello ViewModelLocater. Sono sicuro che i quadri di terze parti pubblicati dagli altri ragazzi mi avrebbero risparmiato un sacco di lavoro, ma ero troppo tardi nel progetto per questo. Questa risposta è una buona via di mezzo. Suppongo che tu abbia imparato anche tu. Comunque, eccoci alcuni mesi dopo, grazie! – bufferz