Se un oggetto mantiene un riferimento a un oggetto fratello o l'accesso tramite il metodo del proprietario reciproco

0

Per contesto, sto costruendo un'applicazione GTK + in C, dove una sottoclasse di GtkApplicationWindow crea e visualizza una sottoclasse di GtkToolbar e un GtkNotebook (un widget con più pagine che può essere visualizzato alternativamente da una funzione membro). Ci sono dei pulsanti radio sulla barra degli strumenti per passare da una pagina all'altra.

Se la barra degli strumenti contiene un riferimento (duplicato) al taccuino (fornito dalla finestra durante la costruzione), o dovrebbe contenere solo un riferimento al suo proprietario (la finestra) e chiamare una funzione del suo proprietario che a sua volta chiama il funzione del notebook per cambiare pagina? Un'altra alternativa, la barra degli strumenti potrebbe mantenere solo un riferimento alla finestra e accedere al riferimento della finestra del notebook ogni volta che si desidera alternare le pagine? Ho la sensazione che questo sia un caso affrontato dalla Legge di Demetra , ma non sono sicuro di cosa imponga.

    
posta Chase Patterson 14.02.2017 - 01:23
fonte

1 risposta

1

Dovrebbe contenere solo un riferimento al suo proprietario (la finestra) e chiamare una funzione del suo proprietario che a sua volta chiama la funzione del notebook per cambiare pagina. Il proprietario possiede il riferimento al notebook e può verificare se il puntatore è ancora buono rispetto a quello rilasciato.

    
risposta data 14.02.2017 - 01:49
fonte