Una domanda per gli esperti di OOP. - pagina 23

 
Artyom Trishkin:
Io non sono certo lui, ma i miei articoli 1 - 3 credo, forse un po' più avanti del 3, hanno tutte le informazioni su esempi specifici di ordini di tracciamento e posizioni.
Grazie. Cercherò di capirlo.
 
Artyom Trishkin:
...

Ho letto il suo articolo. Parla di oggetti e delle loro proprietà. Domanda: cosa si intende per "oggetto" nel concetto di OOP? Pensavo fosse un riferimento a una classe. Che sia la classe stessa? O una struttura?

 

In generale, per come la vedo io, l'oggetto è una classe. Combina tutte le proprietà (campi) e i metodi di un particolare concetto. Ereditarietà - distribuzione gerarchica degli oggetti di classe, che riflette la struttura semantica.

La struttura è un insieme di proprietà, dati, oggetti.

La classe non è solo un oggetto, ma anche una categoria. Relazione di categorie - eredità. È anche una connessione di oggetti.

In breve, la classe è una categoria, un gruppo di dati, un oggetto, una struttura. Le classi consistono in interrelazioni che riflettono la gerarchia semantica dei concetti di qualsiasi dominio.

 
Реter Konow:

George, vorrei capire il significato e l'applicazione delle funzioni virtuali nella pratica (in quali compiti e come esattamente le usi) e il significato delle classi astratte. Se hai compiti specifici che risolvi con questi strumenti, per favore descrivili.

Artem ha detto bene sopra. Ha buoni articoli con esempi di codice.

Posso anche stendere i miei codici e le mie soluzioni, ma saranno più complicate. Per esempio, ho un'interfaccia virtuale di contenitore di serie temporali - in altre parole, l'accesso ai dati dei prezzi dei simboli. E tutto il lavoro di tutti gli Expert Advisors è legato a questa interfaccia.

Ora sto considerando le opzioni dei bagarini sulle zecche. Così, ho preso la stessa interfaccia virtuale e ho ereditato da essa una classe che rappresenta un contenitore di barre di secondi. Ora sto facendo il debug di questa classe. Quando lo scriverò, tutti gli EA (sia quelli 670 che sono nella Lega, sia tutti gli altri) saranno immediatamente in grado di lavorare con qualsiasi secondo timeframe, compresi quelli non standard come "13S".

Cioè, il fatto di avere tutti i dati incapsulati nell'oggetto, e di "esporre" solo l'interfaccia virtuale - mi permette di utilizzare nei miei EA già scritti delle caratteristiche che non erano previste in origine.

 
Реter Konow:

Sto leggendo il suo articolo. Parla di oggetti e delle loro proprietà. Domanda: cosa si intende per "oggetto" nel concetto di OOP? Pensavo fosse un riferimento a una classe. Che sia la classe stessa? O una struttura?

Pensiamola in questo modo:

Supponiamo che si debba costruire una casa. A questo scopo deve essere progettato. Questa è la classe (descrizione, cioè non esiste fisicamente). E quando si vede una casa già costruita, è un oggetto. :)

 
Реter Konow:
Pensi di poter fare un passo avanti nell'IA affidandoti a librerie disponibili pubblicamente? Voglio dire, prendi pezzi di codice da un posto, inserisci pezzi di codice da un altro e hai finito. Davvero?

Seriamente. È proprio questo "prendere pezzi di codice" che ci permette di evitare di pensare a molte cose importanti, e di concentrarci su quelle aree che saranno nuove.

È solo che lei è consapevole di tutti questi punti. E si può scrivere il codice con loro in mente. Ma questa mega-memoria è una cosa rara. La maggior parte delle persone dimentica rapidamente tutte queste piccole cose se non vengono gestite per qualche tempo.

 
Petros Shatakhtsyan:

Mettiamola così:

Diciamo che dovete costruire una casa. Per fare questo, bisogna progettarlo. Questa è la classe (descrizione, cioè non esiste fisicamente). E quando si vede una casa già costruita, è un oggetto. :)

In questa versione di senso, la classe è un magazzino di strumenti, materiali, materie prime e macchine. Gerarchia di classi ereditate - come i laboratori di una "fabbrica".
 
Georgiy Merts:

Seriamente. È proprio quel "prendere pezzi di codice" che ci permette di evitare di pensare a molte cose importanti, e di concentrarci sulla soluzione di quelle aree che saranno nuove.

...

George, in ogni biblioteca, in ogni soluzione, c'è un concetto. Se prendo il concetto di qualcun altro e cerco di sviluppare il mio sulla sua base, potrei avere un crash del concetto, perché un sistema costruito su due o più concetti non può essere stabile. Pertanto, le cose innovative devono essere sviluppate da soli e da zero. Per non lottare con gli errori "generici" e le incongruenze degli altri autori.

 
Реter Konow:
Pensi di poter fare un passo avanti nell'IA affidandoti a librerie disponibili pubblicamente? Cioè, prendi dei pezzi di codice da un posto, inserisci dei pezzi di codice da un altro e il gioco è fatto. Davvero?
Stiamo parlando della stessa cosa ora? Intendo personalmente le reti neurali. Lì è difficile trovare qualcosa di fondamentalmente nuovo. E per il collegamento e l'addestramento dei vari NS, le librerie sono state create da tempo in quantità di merce per tutte le principali lingue.
 
Реter Konow:
In questa variante di senso, la Classe è un magazzino di strumenti, materiali, materie prime e macchine. Gerarchia di classi ereditate - come i laboratori "fabbrica".

Non così tanto.

Ecco un altro modo di spiegarlo. Di solito nessuno lo spiega in questo modo.

Tutti i programmatori sanno cos'è l' int x, per esempio;

Ora immaginiamo che la parola int sia come il nome di una classe, e cosa descrive?

1. un intero

2. occupa 4 byte in memoria

3. prende valori +- entro certi limiti. (questo è sufficiente);

E quando scriviamo int x; allora dichiariamo un oggetto x, di tipo int . x occupa già fisicamente un campo di 4 byte nella RAM.