Oppure

Loading
28/06/10 15:54
HeDo
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
aaa
28/06/10 15:57
Neo1986
Postato originariamente da HeDo:

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-|
aaa
28/06/10 16:08
HeDo
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 :)

aaa
29/06/10 7:51
lorenzo
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.
aaa
29/06/10 8:13
Il Totem
Forse vuoi qualcosa del genere:
Class GestoreSensore
   Private Shared _Comandi As List(Of ElencoParametri)

   Public Shared ReadOnly Property Comandi() As List(Of ElencoParametri)
      Get   
         Return _Comandi
      End Get
   End Property

   Shared Sub New()
      'inizializza tutti i comandi
   End Sub

   Public Sub New()
      'inizializza altre risorse
   End Sub

   'Altri membri
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:
Public Sub Esegui(ByVal Cmd As ElencoParametri)
   '...
End Sub

'Usate nel programma principale:
Dim S As New GestoreSensore
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.
aaa
29/06/10 13:28
HeDo
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?
aaa
30/06/10 10:11
Il Totem
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.
aaa
30/06/10 11:25
HeDo
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 :)
aaa