
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ho guardato attraverso il mio nuovo prisma, un ibrido di OOP e Kernel, i sistemi di oggetti descritti nei programmi, e mi è quasi scoppiato il cervello. Prima di tutto, ho dato una nuova occhiata ai miei sistemi GUI. Attraverso tutti questi oggetti-parametri, oggetti-stati, oggetti-eventi e gestori. Dato che la GUI e la sua tecnologia mi sono familiari, tutto sembrava abbastanza chiaro, ma il sistema è molto complesso. Una massa di parametri, mappature e gestori. Sono giunto alla conclusione che tali sistemi non possono sorgere da soli. E la selezione naturale non ha alcun potere qui.
Ecco perché:
Ogni parametro può avere n numero di parametri derivati. Diciamo: un cambiamento di X può generare infiniti parametri derivati dai valori di quell'X in qualsiasi momento.
Ogni parametro derivato deve avere un gestore e un collegamento ad altri parametri. Nessun parametro esiste da solo. Il link è obbligatorio.
L'accoppiamento può essere diverso, e di conseguenza può apparire una varietà di gestori-filtri, correttori, trasduttori.
Gli eventi che possono essere considerati significativi per i sistemi sono indefinitamente molti. Ognuno ha le sue proprietà, i suoi collegamenti e i suoi gestori. Le variazioni sono innumerevoli.
Così, senza un concetto, nessun sistema può nascere. (Molto probabilmente).
Non è chiaro come si sia originata la vita sulla Terra...
Ecco un altro esempio:
Consideriamo un sistema per spostare una finestra con controlli su un grafico.
Così, con questo sistema, possiamo cambiare le coordinate di una finestra e dei suoi oggetti nel momento in cui la sua maniglia viene afferrata dal cursore. Per spostare il tutto, abbiamo bisogno di associare il tutto alle funzioni del gestore ObjectSetInteger che cambiano la posizione dell'oggetto MT sul grafico.
Questa è un'implementazione di una sola funzione GUI collegando blocchi di sistema speciali - Parametri oggetto, Gestori oggetto, ecc.
Costruire un tale sistema nel Kernel, non è un po' più facile (o forse anche più difficile) che scrivere codice normale senza trasformare tutto in un Oggetto. Ma continuerò a scavare...
ZS. Ho dimenticato di aggiungere che per spostare la finestra, dobbiamo anche "costruire" un Oggetto Evento, che blocca la maniglia della finestra e il movimento del cursore. E questo oggetto evento, collegatelo al gestore dell'oggetto dei valori x,y del cursore (che scrive la differenza nei parametri derivati), e funzionerebbe solo su segnale di questo evento.
E per ogni oggetto evento, è necessario creare un gestore di oggetti e legarlo ad esso.
Ogni object-handler ha le sue proprietà e i valori che usa quando lavora con parametri o eventi. Pertanto, ci deve essere un modello, o vi impantanerete a creare tutto).
Ecco un altro esempio:
Consideriamo un sistema per spostare una finestra con controlli su un grafico.
Così, con questo sistema, possiamo cambiare le coordinate di una finestra e dei suoi oggetti nel momento in cui la sua maniglia viene afferrata dal cursore. Per spostare il tutto, abbiamo bisogno di associare il tutto alle funzioni del gestore ObjectSetInteger che cambiano la posizione dell'oggetto MT sul grafico.
Questa è un'implementazione di una sola funzione GUI collegando blocchi di sistema speciali - Parametri oggetto, Gestori oggetto, ecc.
Costruire un tale sistema nel Kernel, non è un po' più facile (o forse anche più difficile) che scrivere codice normale senza trasformare tutto in un Oggetto. Ma continuerò a scavare...
ZS. Ho dimenticato di aggiungere che per spostare la finestra, dobbiamo anche "costruire" un Oggetto Evento, che blocca la maniglia della finestra e il movimento del cursore. E questo oggetto evento, collegatelo al gestore dell'oggetto dei valori x,y del cursore (che scrive la differenza nei parametri derivati), e funzionerebbe solo su segnale di questo evento.
E per ogni oggetto evento, è necessario creare un gestore di oggetti e legarlo ad esso.
Ogni object-handler ha le sue proprietà, e i suoi valori sono usati da esso quando lavora con parametri o eventi. Pertanto, ci deve essere un modello, o vi impantanerete a creare tutto questo).
Complicato. Ingiustificatamente complicato.
Proprio così.
Il binding tra i parametri derivati che contengono la differenza x,y del cursore e gli oggetti modulo (che sono nella catena) ha un gestore al centro che può eseguire un collegamento seriale ai parametri x,y di ogni oggetto modulo. Cioè, legare i parametri tramite il gestore della connessione seriale permette di sostituire il legame di ogni oggetto modulo con parametri derivati che passano valori di differenza x,y. Ci stavo anche pensando.
Nella mia GUI, lo spostamento della finestra è implementato all'interno della funzione che fa quanto segue:
(1) Controllore di eventi per l'evento click della maniglia della finestra
(2) evento Move cursor
(3) Calcolo della differenza tra le coordinate del cursore attuale e quelle del cursore passato
(4) Scorrere gli oggetti della finestra e cambiare le loro coordinate regolando la differenza nella posizione del cursore.
(5) Chiamare ObjectSetInteger per spostare l'oggetto МТ della forma della finestra (canvas) lungo il grafico della distanza data.
Quindi, l'implementazione all'interno della funzione è corretta. L'implementazione attraverso Object Handlers, Object Parameters e Object Bindings sembra imbarazzante su questo sfondo. Ma, scaviamo dentro...
Questo è corretto.
La mappatura tra i parametri derivati che contengono la differenza x,y del cursore e gli oggetti modulo (che sono nella catena) ha un gestore nel mezzo che può eseguire una connessione seriale ai parametri x,y di ogni oggetto modulo. Cioè, legare i parametri tramite il gestore della connessione seriale permette di sostituire il legame di ogni oggetto modulo con parametri derivati che passano valori di differenza x,y. Ci stavo anche pensando.
Nella mia GUI, lo spostamento della finestra è implementato all'interno della funzione che fa quanto segue:
(1) Controllore di eventi per l'evento click della maniglia della finestra
(2) evento Move cursor
(3) Calcolo della differenza tra le coordinate del cursore attuale e quelle del cursore passato
(4) Scorrere gli oggetti della finestra e cambiare le loro coordinate regolando la differenza nella posizione del cursore.
(5) Chiamare ObjectSetInteger per spostare l'oggetto МТ della forma della finestra (canvas) lungo il grafico della distanza data.
Quindi, l'implementazione all'interno della funzione è corretta. L'implementazione attraverso Object Handlers, Object Parameters e Object Bindings sembra imbarazzante su questo sfondo. Ma, scaviamo dentro...
Sì, perché non c'è bisogno di fare questi gestori separati dall'oggetto. La classe che restituisce le coordinate del cursore può essere resa statica - sarà disponibile per qualsiasi classe nel programma, e ottenere le coordinate e rispondere ad esse dovrebbe essere implementato in ogni oggetto. Ma solo l'oggetto principale del modulo dovrebbe chiamare questi gestori. Poi per tutti gli altri oggetti di forma è sufficiente specificare nuove coordinate e ridisegnare. All'interno dell'oggetto modulo c'è una lista di tutti i suoi oggetti. L'oggetto form ha definito il cambiamento delle sue coordinate - imposta nuovi valori alle sue coordinate, passa attraverso la sua lista di oggetti e chiama i metodi per impostare le coordinate di ogni oggetto nella sua lista. Allo stesso tempo, ogni oggetto successivo fa la stessa cosa quando le sue coordinate cambiano - guarda attraverso la sua lista di oggetti e ordina loro di cambiare le loro coordinate. Gli oggetti nelle liste sono disposti nell'ordine in cui sono disegnati (sequenza Z). In altre parole, ogni oggetto ha il proprio metodo per cambiare le coordinate, ma è implementato nello stesso modo - guarda attraverso la lista di tutti gli oggetti "amici" e chiama lo stesso metodo per ognuno di loro. Così, chiamando questo metodo una volta per l'oggetto principale del modulo, avviamo automaticamente un cambio di coordinate per tutti gli oggetti del modulo. Dopo che tutti gli oggetti "propri" dell'oggetto modulo sono stati elaborati, viene invocato il metodo redraw chart dell'oggetto modulo, che è lo stesso per tutti gli oggetti modificati.
...
Questa è la visione OOP standard del meccanismo di movimento delle finestre. Ve ne mostrerò uno diverso. Per fare questo, libera la tua mente per un secondo e segui semplicemente il mio pensiero.
Questa è la fine del racconto...
Abbiamo guardato la matrice dall'esterno e siamo rimasti a bocca aperta! "Abbiamo creato un sistema di oggetti!)
ZS. Notate che tutto può essere creato in una matrice-array. E l'array-matrice è il Nucleo. E le entità in esso - gli oggetti reali. E parametri, ed eventi, e legami, e proprietà, e gestori. Ci sono innumerevoli sistemi che si possono costruire nel Kernel a partire da queste cose di base.
Una finta continuazione...
11. In qualche modo i parametri del primogenito hanno deciso di seguire una moda. Hanno scoperto che c'è una fiera delle proprietà da qualche parte nella matrice, e un certo spazio nella novità. Si dice che abbia tre proprietà. Le "dimensioni" sono chiamate. Queste proprietà hanno una gamma presumibilmente infinita di valori, e come bonus danno un altro "parametro-tempo". I parametri sono arrivati alla fiera e hanno preso le proprietà x,y,x_size,y_size. Dicono che vogliono fare un guscio nello spazio. E hanno preso colore. Sono tornati e hanno iniziato a vestire le nuove proprietà. Hanno modellato e modellato degli involucri spaziali finché non si sono stancati. Sono cresciuti immensamente, poi sono crollati... Poi si sono colorati e si sono rilassati. Cominciarono a pensare a cosa fare dopo. E poi hanno guardato la casella delle proprietà del tempo. Vediamo di cosa si tratta... L'hanno aperta, l'hanno attaccata a se stessi, ma non hanno calcolato i valori e in un attimo è evaporata nel vuoto. Dopo tutto, il tempo è un parametro con il quale bisogna stare molto attenti...
Una finta continuazione...
11. In qualche modo i parametri del primogenito hanno deciso di seguire una moda. Hanno scoperto che c'è una fiera della proprietà da qualche parte nella matrice, e un certo spazio nella novità. Si dice che abbia tre proprietà. Le "dimensioni" sono chiamate. Queste proprietà hanno una gamma di valori presumibilmente infinita, e come bonus danno un altro "parametro-tempo". I parametri sono arrivati alla fiera e hanno preso le proprietà x,y,x_size,y_size. Dicono che vogliono fare un guscio nello spazio. E hanno preso colore. Sono tornati e hanno iniziato a vestire le nuove proprietà. Hanno modellato e modellato degli involucri spaziali finché non si sono stancati. Sono cresciuti immensamente, poi sono crollati... Poi si sono colorati e si sono rilassati. Cominciarono a pensare a cosa fare dopo. E poi hanno guardato la casella delle proprietà del tempo. Vediamo di cosa si tratta... L'hanno aperta, l'hanno attaccata a se stessi, ma non hanno calcolato i valori e in un attimo è evaporata nel vuoto. Dopo tutto, il tempo è un parametro a cui bisogna fare molta attenzione...
E i primi dieci non erano seri?
Io, per esempio, non posso leggere senza ridere.
...
Tutta questa "obiettività" è molto confusa, non sei d'accordo... Bisogna fare attenzione. Nikolai Semko aveva ragione sulla vicinanza tra genio e schizofrenia. È possibile "impazzire". Ci sono cose che è meglio non capire. Alcune porte devono essere sempre chiuse alla nostra Coscienza. Come diceva un film, - "il parassita più pericoloso è un'idea. Una volta nel cervello, è impossibile tirarlo fuori". La matrice di cui parlavo è pericolosa per la Mente. È facile perdersi in esso e perdersi per sempre. Facciamo attenzione.)))