Fatto!!!
Ho creato l'interfaccia ed implementata in una classe astratta. ho poi derivato dalla classe astratta tutti le classi "reali". Funziona bene, unico neo è che avendo una collection che popolo con varie istanze di queste classi, ma con tipi di classe astratta "perdo" le proprietà delle classi derivate in alcuni casi (ad esempio se imposto la collection come DataSource di un DataGridView, ma poco male).
Sempre nella collection ho implementato un metodo per popolare la collection stessa (prende i dati da un adapter che legge da un DB e istanzia le classi): mi sono visto costretto a usare delle costanti in questo modo:
Protected Overridable Sub Popola()
Me.Items.Clear()
For Each cp As IComponenteDB In _adapter.GetComponenti(_filtro)
Select Case cp.Tipo
Case "L"
Me.Items.Add(New Lavorazione(CType(cp, IComponenteDB)))
Case "M"
Me.Items.Add(New Materiale(CType(cp, IComponenteDB)))
Case ...
End Select
Next
End Sub
Esiste un sistema più "dinamico" (non so se mi spiego) per effettuare questa scelta? (qui è solo una finitura minima proprio
)
Grazie mille
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole