Una domanda per gli esperti di OOP. - pagina 48

 
Artyom Trishkin:

C'è un nuovo operatore. Questo operatore permette di creare un nuovo oggetto in fase di esecuzione.

Ci sono array di puntatori a oggetti. Questi array permettono di metterci dentro un puntatore a qualsiasi oggetto.

Gli array di puntatori sono essi stessi degli oggetti.

Ora pensateci e rispondete: è possibile o no aggiungere proprietà agli oggetti al volo?

Leggete attentamente il mio post. Sono stato subito d'accordo con la possibilità di aggiungere nuove proprietà, ma poi ho riconosciuto l'inutilità di farlo. Nuove proprietà "al volo" - non significa aggiornare la struttura dell'oggetto. Le sue relazioni ereditarie, e quindi - l'intero sistema rimarrà invariato. Di conseguenza, l'oggetto acquisirà una proprietà che sarà inutile, perchénon ci sarà integrazione di quella proprietà senza costruire nuovi algoritmi che lavorano con essa .
 
Реter Konow:
Leggete attentamente il mio post. Ero d'accordo con la possibilità di aggiungere subito nuove proprietà, ma poi ho riconosciuto l'insensatezza della cosa. Nuove proprietà "al volo", - non significa aggiornare la struttura dell'oggetto. Le sue relazioni ereditarie, e quindi - l'intero sistema rimarrà invariato. Di conseguenza, l'oggetto acquisirà una proprietà che sarà inutile, perché non ci sarà integrazione di quella proprietà senza costruire nuovi algoritmi che lavorano con essa .

C'è un oggetto proprietà di base che è dotato di un gestore di eventi. Questo oggetto-proprietà esegue la funzione primitiva di confrontare il suo stato con il suo stato precedente e mantiene il risultato del confronto - più/meno/nessun cambiamento. Lo fa continuamente durante la sua vita.

Qualsiasi proprietà di qualsiasi altro oggetto è quell'oggetto-proprietà. E l'altro oggetto stesso è l'erede dell'oggetto-proprietà.

Così qualsiasi oggetto vive costantemente controllando il suo stato, e lo stato delle sue proprietà, e queste a loro volta controllano lo stato di tutte le sue proprietà (se esse stesse sono discendenti dell'oggetto-proprietà).

Ogni proprietà ha un identificatore unico.

Così ogni oggetto sa quale proprietà è cambiata.

Ogni oggetto ha un gestore che reagisce quando le proprietà cambiano in una direzione o nell'altra. Qui è dove il "creatore" deve specificare come l'oggetto reagisce a un cambiamento di proprietà.

E volete che un programma si "muti" da solo per arrivare dove deve andare senza il vostro coinvolgimento? Creare nuovi gestori di cambio proprietà da solo?

Beh, ecco un accenno al DNA. Non si limita a descrivere un oggetto e le sue proprietà. Codifica anche il suo comportamento. Quindi, in sostanza, avete bisogno di codificare il comportamento delle proprietà quando cambiano certi fattori esterni. E iniziate in piccolo e gradualmente arrivate a interrelazioni più complesse. Impara tutto sul DNA e inizia a creare il tuo codice genetico perdescrivere gli oggetti. Ogni oggetto ha il suo filo. Temo che non ci sia abbastanza vita per superare il Creatore.
 

C'era una volta un gioco per computer che era molto bello: Snake Fights. Bisognava programmare un serpente, ma il metodo di programmazione era così strano che non era ovvio come si sarebbe comportato. È stato un intrattenimento piuttosto divertente.

Qualcuno ci ha giocato?

 
Dmitry Fedoseev:

C'era una volta un gioco per computer che era molto bello: Snake Fights. Bisognava programmare un serpente, ma il metodo di programmazione era così strano che non era ovvio come si sarebbe comportato. È stato un intrattenimento piuttosto divertente.

Qualcuno ci ha giocato?

Ne ho programmato uno per Spectrum in assembler. All'inizio ho creato delle cellule che potevano interagire con se stesse e con il loro ambiente, e che potevano riprodursi. E poi ho deciso di fare battaglie tra due creature - ognuno dei due utenti poteva inserire il codice comportamentale della propria creatura, e poi guardare come le due creature si impadronivano del territorio e l'una dell'altra.

Era divertente.

 
Artyom Trishkin:

C'è un oggetto proprietà di base che ha un gestore di eventi. Questo oggetto-proprietà esegue la funzione primitiva di confrontare il suo stato con il suo stato precedente e memorizza il risultato del confronto - più/meno/nessun cambiamento. Lo fa continuamente durante la sua vita.

Qualsiasi proprietà di qualsiasi altro oggetto è quell'oggetto-proprietà. E l'altro oggetto stesso è l'erede dell'oggetto-proprietà.

Così qualsiasi oggetto vive costantemente controllando il suo stato, e lo stato delle sue proprietà, e queste a loro volta controllano lo stato di tutte le sue proprietà (se esse stesse sono discendenti dell'oggetto-proprietà).

Ogni proprietà ha un identificatore unico.

Così ogni oggetto sa quale proprietà è cambiata.

Ogni oggetto ha un gestore che reagisce quando le proprietà cambiano in una direzione o nell'altra. Qui è dove il "creatore" deve specificare come l'oggetto reagisce a un cambiamento di proprietà.

E volete che un programma si "muti" da solo per arrivare dove deve andare senza il vostro coinvolgimento? Creare nuovi gestori di cambio proprietà da solo?

Avete descritto l'aggiunta di una nuova variabile in un blocco di algoritmi, dove un gestore "universale" controlla il valore della variabile e cosa le succede. Il gestore non gestisce da solo il valore della proprietà. Esegue il suo cambiamento solo"al prompt" degli algoritmi e fissa questo evento.

Gli algoritmi stessi implementano l'idea di come esattamente le proprietà determinano il funzionamento dell'oggetto. Una nuova proprietà, sono nuovi algoritmi che descrivono un nuovo comportamento (relazione di eventi e valori di parametri) e non possono essere fatti "al volo", in modo standard.

 
Artyom Trishkin:

...

Beh, ecco un accenno al DNA. Non si limita a descrivere un oggetto e le sue proprietà. Codifica anche il suo comportamento. Quindi, in sostanza, avete bisogno di codificare il comportamento delle proprietà quando cambiano certi fattori esterni. Inizia in piccolo e fatti strada verso interrelazioni più complesse, impara tutto sul DNA e inizia a creare il tuo codice genetico per descrivere gli oggetti . Ogni oggetto ha il suo filo. Temo che non ci sia abbastanza vita per superare il Creatore.
Non si può battere. Puoi provare a creare un'ombra sbiadita, ma ne vale la pena).
 
Реter Konow:

Avete descritto l'aggiunta di una nuova variabile a un blocco di algoritmi, dove qualche gestore "universale" controlla il suo valore e gli eventi che le succedono. Il gestore non controlla il valore della proprietà stessa. Esegue il suo cambiamento solo "al prompt" degli algoritmi e fissa questo evento.

Gli algoritmi stessi implementano l'idea di come esattamente le proprietà determinano il funzionamento dell'oggetto. Una nuova proprietà, è un nuovo algoritmo che descrive un nuovo comportamento (relazione di eventi e valori di parametri) e non può essere fatto "al volo", in modo standard.

Il valore di una proprietà è "controllato" dall'ambiente esterno. Ogni oggetto di proprietà è dotato della capacità di controllare quella proprietà e di memorizzare il risultato del controllo.

Un intero oggetto può vedere i valori e gli stati di tutte le sue proprietà. Comprese le proprietà appena nate.

Ma come dovrebbe reagire ai cambiamenti delle sue proprietà è scritto nella sua catena genetica.

 
Caspita, Peter è diventato un guru dell'OOP, proprio così, destreggiandosi tra verbose e intelligenti sciocchezze nella sua testa e sul forum. Bravo, non pensavo che qualcosa potesse eclissare la sensazione di euforia dello spinner, ma è successo, dannazione.
 
Vict:
Caspita, Peter è diventato un guru dell'OOP, proprio così, destreggiandosi tra verbose e intelligenti sciocchezze nella sua testa e sul forum. Bravo, non pensavo che qualcosa potesse eclissare la sensazione di euforia dello spinner, ma è successo, dannazione.
Essere in grado di costruire modelli astratti di concetti altrui, ordinarli senza entrare nei dettagli, estrapolarli e creare simbiosi con i miei concetti. Facile).
 
Artyom Trishkin:

Il valore della proprietà è "gestito" dall'ambiente esterno. Ogni oggetto di proprietà ha la capacità di controllare questa proprietà e memorizzare il risultato del controllo.

L'intero oggetto ha la possibilità di vedere i valori e gli stati di tutte le sue proprietà. Comprese le proprietà appena create.

Ma come dovrebbe reagire ai cambiamenti delle sue proprietà è scritto nella sua catena genetica.

Non mi aspettavo che tu capissi così bene la struttura del Soggetto. In altre parole, i miei pensieri sono paralleli, anche se c'è qualcosa che non vi sto dicendo in questi argomenti. È ancora presto.