Hai bisogno di un modello OOP o di una strategia per la proprietà "pluggable"

0

Sto usando OOP e MVVM in un'applicazione C # di WPF. L'obiettivo è che l'oggetto risultante (collegato ai dati all'interfaccia utente) rappresenti accuratamente un prodotto. Un'area specifica del prodotto è altamente configurabile. Per scopi concettuali, immagina una barca che può avere vari mezzi di propulsione. Un motore di propulsione sommerso o sopra il motore del ventilatore di acqua può essere collegato a poppa e avranno proprietà molto diverse.

A livello di modello, potrei avere una proprietà digitata per interfaccia per questo PropulsionDevice , con l'interfaccia che definisce tutte le informazioni richieste di cui ho bisogno per fissare i prezzi e ponderare il prodotto finito. Come assegnare questa proprietà in base all'input dell'utente è dove non sono sicuro di cosa fare. Creare un'enumerazione con un elemento per ogni classe che implementa la mia interfaccia, e presentarla in un ComboBox sembra clunky e ingenuo (la disconnessione tra l'elemento enum e la classe sembra errata). Ma non sono sicuro che la meta-programmazione con attributi personalizzati o l'uso di Reflection sarebbe un'opzione migliore. Forse c'è un'altra opzione?

Qualche suggerimento su come consentire flessibilità nelle mie classi c #, nonché su come presentare questo nell'interfaccia utente?

    
posta Ethan 20.01.2014 - 17:51
fonte

1 risposta

0

Non vedo alcun problema nell'usare la riflessione per trovare ogni classe che implementa l'interfaccia desiderata e la presenta in una ComboBox . Puoi anche usare IoC per fare questo, quindi non devi preoccuparti di te stesso.

    
risposta data 20.01.2014 - 19:26
fonte

Leggi altre domande sui tag