Solved Come fare per riferirsi ad un campo di un'altra classe
-
Buonasera.
Vi prego di darmi una conferma o una smentita.
Se ho due classi (Classe1 e Classe2) e mi trovo su Classe1, se ho bisogno di conoscere il valore di un campo di Classe2 posso utilizzare il riferimento diretto così: Classe2->LeggiValoreCampo2().
Se invece mentre sto in Classe1 devo modificare un campo in Classe2 non è corretto utilizzare il riferimento diretto (Classe2->ScriviValoreCampo2(NuovoValore)) ma si deve utilizzare un segnale e richiamare il metodo di aggiornamento così:
emit ScriviValoreCampo2(NuovoValore)).
E' così ? -
Bhe puoi scriverti i segnali slot he passano il valore da una all'altra classe .. oppure integrare la classe 2 nella 1, ma di regola per risparmio di tempo si inizia con le classi inferiori le quali vanno poi subclassate nelle superiori... per quello scrivendo i progetti si fanno tanti piccoli moduli come in playmobil o lego i quali poi si reintegrano .. in una applicazione grande...
Subclassando la classe prende sempre piu maggior numero di funzioni crescendo poi nel vero programma.. facendo in questo modo i singoli componenti possono essere ottimizzati al massimo velocita e funzione... altrimenti quanto il tutto è composto non si vede piu bene dove la velocita non è ottima... e o cercare errori non è poi facile...
sperando he ti aiuto questo punto di vista... -
Ti ringrazio, ma non mi hai tolto il dubbio. Gli slots e i connect si usano solo per poter modificare un campo di una classe dall'esterno della classe stessa. E' così o no ? Per poter esaminare il valore di un campo di un'altra classe non vedo come poter creare uno slot e acquisire un valore con un connect.
-
@bvox123 said in Come fare per riferirsi ad un campo di un'altra classe:
Gli slots e i connect si usano solo per poter modificare un campo di una classe dall'esterno della classe stessa
Non solo.
S.O.L.I.D. sono principi fondanti della programmazione a oggetti. Questi implicano che se un oggetto di tipo Classe1 crea un oggetto di tipo Classe2, l'oggetto Classe2 non deve avere alcuna idea di chi o cosa sia l'oggetto a monte. Non e' la responsabilita' di Classe2 cabiare cose a monte di essa. Usiamo i signal e slot per permettere a Classe2 di dire all'esterno che qualcosa e' cambiato ma e' la responsabilita' di chi e' a monte (Classe1) di reagire al cambiamento