MVVM Inheritance seguendo i principi SOLID

3

Sono attualmente nella fase di progettazione del mio programma (quindi nessun codice). Sarà scritto in WPF in C # usando i principi MVVM.

Avrò un Drag & multifunzionale Drop control, che agirà in modo simile a un post di Facebook sul muro.

Per chiarire questo, immagina che potrebbe essere un evento del calendario, una nota importante, un aggiornamento del prodotto ecc.

Ciò significa che saranno diversi nei modelli su cui saranno basati.

Quale pensi che sarebbe l'approccio più SOLID alla costruzione di un tale controllo? Quello che mi è venuto in mente:

  1. Avere un singolo oggetto di controllo, basato sul "tipo" con il quale è stato creato, eredita modelli diversi. (anche se non sono del tutto sicuro di come riuscirò a farlo ancora.
  2. Avere controlli diversi per ogni "tipo" che tutti ereditano da una classe di controllo di base ed estendono le funzionalità di base.
  3. Qualunque altra soluzione, che potrebbe essere ancora migliore?
posta Kamil Solecki 23.11.2016 - 09:19
fonte

1 risposta

2

Cerco di seguire la massima "favorisci la composizione sull'eredità". In altre parole invece di cuocere al comportamento in fase di compilazione, collegarlo in fase di esecuzione. Questo segue il "Principio Aperto / Chiuso" di SOLID, che afferma che il codice dovrebbe essere aperto all'estensione, ma chiuso alla modifica. In altre parole, dovresti sforzarti di progettare il tuo codice in modo da poter estendere il suo comportamento (con abilità come drag-and-drop) senza dover modificare il codice sorgente esistente (modificando la classe base per aggiungere drag-and- goccia).

I contenitori IoC sono utili per "cablare gli oggetti" in fase di esecuzione senza dover modificare alcun codice.

    
risposta data 30.11.2016 - 19:37
fonte

Leggi altre domande sui tag