Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Dichiarazione e riempimento lista in una Classe
Forum - C# / VB.NET - [VB.NET] Dichiarazione e riempimento lista in una Classe - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Neo1986 (Ex-Member)
Pro


Messaggi: 97
Iscritto: 21/06/2010

Segnala al moderatore
Postato alle 17:57
Lunedì, 28/06/2010
Testo quotato

Postato originariamente da HeDo:

Testo quotato

Postato originariamente da Neo1986:

visto che abbiamo fatto 30 facciamo 31, nel caso volessi usare una classe per ogni comando, come potrei fare nel thread di lettura per fargli "scorrere" tutte le classi (quindi ogni comando)?



l'oop non si spiega in un post :D

l'idea base sarebbe quella di creare una classe astratta command dalla quale tutti i comandi discendono. E un commandforger che dai dati di ingresso restituisce un'istanza della classe che rappresenta quel comando.
Nella classe base metti dei comandi per serializzare/deserializzare il comando in modo da poterli chiamare direttamente sui dati.

E' un argomento non banale in cui intervengono molti aspetti della programmazione OOP, ti consiglio un buon libro :D



Ti ringrazio per la dritta ma purtroppo visto che è per lavoro e non ho a disposizione 6 mesi di tempo per leggermi un libro continuo sulla mia strada.

Grazie ancora 8-|

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 18:08
Lunedì, 28/06/2010
Testo quotato

Postato originariamente da Neo1986:

Ti ringrazio per la dritta ma purtroppo visto che è per lavoro e non ho a disposizione 6 mesi di tempo per leggermi un libro continuo sulla mia strada.

Grazie ancora 8-|



eh guarda ti capisco, spesso il lavoro impone delle tempistiche che non contemplano l'approfondimento delle tematiche coinvolte :)

ti consiglio cmq di prendere un testo sull'OOP, magari per il prossimo progetto ;)
considera che l'approcio OOP una volta compreso e implementato è quello che offre la maggior flessibilità e pulizia del codice, hai solo da guadagnarci :)


PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 9:51
Martedì, 29/06/2010
Testo quotato

Postato originariamente da HeDo:

intervento inutile in quanto fin qui c'eravamo arrivati...



mi è sfuggita una regola? Da quando HeDo stabilisce che un intervento ha significato?
Fammi il piacere di non commentare più in questo modo, sei molto irritante.
Non vedo chi ti creda di essere per poter emettere giudizi a priori su cose scritte da altri.

Con questo non intendo proseguire oltre. Arrivederci.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:13
Martedì, 29/06/2010
Forse vuoi qualcosa del genere:
Codice sorgente - presumibilmente VB.NET

  1. Class GestoreSensore
  2.    Private Shared _Comandi As List(Of ElencoParametri)
  3.  
  4.    Public Shared ReadOnly Property Comandi() As List(Of ElencoParametri)
  5.       Get  
  6.          Return _Comandi
  7.       End Get
  8.    End Property
  9.  
  10.    Shared Sub New()
  11.       'inizializza tutti i comandi
  12.    End Sub
  13.  
  14.    Public Sub New()
  15.       'inizializza altre risorse
  16.    End Sub
  17.  
  18.    'Altri membri
  19. End Class



Se utilizzi il GestoreSensore per gestire tutte le azioni possibili, quando ne inizializzi uno la prima volta viene eseguito il costruttore Shared, che inizializza tutti i comandi notevoli (che devi scrivere a mano). Essi saranno accessibili nella lista Comandi. Potrai scrivere dei metodi di questo tipo:
Codice sorgente - presumibilmente VB.NET

  1. Public Sub Esegui(ByVal Cmd As ElencoParametri)
  2.    '...
  3. End Sub
  4.  
  5. 'Usate nel programma principale:
  6. Dim S As New GestoreSensore
  7. S.Esegui(GestoreSensore.Comandi(0))



Utilizzare una classe per ogni comando, secondo me, è scorretto. L'uso che ne fai è di semplice memorizzazione, mentre una classe rappresenta un'entità attiva, dotata di metodi che fanno qualcosa o fanno fare qualcosa. Per i tuoi scopi è decisamente meglio una struttura.

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:28
Martedì, 29/06/2010
Testo quotato

Postato originariamente da Il Totem:

Utilizzare una classe per ogni comando, secondo me, è scorretto. L'uso che ne fai è di semplice memorizzazione, mentre una classe rappresenta un'entità attiva, dotata di metodi che fanno qualcosa o fanno fare qualcosa. Per i tuoi scopi è decisamente meglio una struttura.



beh un comando può avere dei parametri e magari doverli manipolare in qualche modo, quindi credo che una classe offrà più elasticità rispetto ad una struttura, almeno sul fronte ereditarietà :)

@lorenzo: sono solo io che quando non posso aggiungere altro a quello che è già stato detto non posto?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 12:11
Mercoledì, 30/06/2010
Testo quotato

Postato originariamente da HeDo:
beh un comando può avere dei parametri e magari doverli manipolare in qualche modo, quindi credo che una classe offrà più elasticità rispetto ad una struttura, almeno sul fronte ereditarietà :)

@lorenzo: sono solo io che quando non posso aggiungere altro a quello che è già stato detto non posto?



Il fatto è proprio questo: non c'è bisogno di ereditarietà. Infatti la diversità e il comportamento di ciascun comando è dato dal valore dei campi della struttura e non dal tipo di dato che li contiene. E' solo il nome del comando (quindi una stringa) che ne modifica la funzione.

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 13:25
Mercoledì, 30/06/2010
Testo quotato

Postato originariamente da Il Totem:

Il fatto è proprio questo: non c'è bisogno di ereditarietà. Infatti la diversità e il comportamento di ciascun comando è dato dal valore dei campi della struttura e non dal tipo di dato che li contiene. E' solo il nome del comando (quindi una stringa) che ne modifica la funzione.



è un approcio diverso, dipende dalla complessità del protocollo e dai comandi, cmq ognuno è libero di scegliere l'approcio che preferisce :)

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo