Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wenn Sie Klassen für etwas verwenden, das Sie nicht verstehen, ist das nicht OOP.
Und ja, ich rate Ihnen: Solange Sie nicht verstehen, warum diese Gimmicks notwendig sind, sollten Sie sie nicht verwenden.
Mit diesem Ansatz wird es nie zu einem Verständnis kommen.
Ich glaube nicht, dass bei unsachgemäßem Gebrauch Verständnis aufkommen kann.
Igor, erinnerst du dich an den Auftrag, den der Zar Fedot dem Streltsy erteilt hat?
Und was war die Antwort der beiden jungen Männer?
Wie kann man versuchen, etwas zu reproduzieren, wenn man die Regeln oder das zu erzielende Endergebnis nicht kennt...
Nun, das ist richtig, hier ist eine Nachahmung der Tatsache, dass die Nachrichtenzeiten und der Umfang der Nachrichten von Land zu Land unterschiedlich sind:
aber es bleibt abzuwarten, ob Sie es in eine PLO einpacken müssen.
;)
Hier ist ein Protokoll, wie es aufgerufen wurde und was es am Ende ergab:
2019.09.08 16:00:35.031 tst (EURUSD,H1) NewsRU::NewsRU
2019.09.08 16:00:35.032 tst (EURUSD,H1) NewsEN::NewsEN
2019.09.08 16:00:35.032 tst (EURUSD,H1) NewsFake::NewsFake
2019.09.08 16:00:35.032 tst (EURUSD,H1) Fehler, nicht dieser Typ FR
2019.09.08 16:00:35.032 tst (EURUSD,H1) News #1 in 1970.01.01 00:01:51
2019.09.08 16:00:35.032 tst (EURUSD,H1) News #2 in 1970.01.01 00:03:42
2019.09.08 16:00:35.032 tst (EURUSD,H1) News #3 in 1970.01.01 00:05:33
2019.09.08 16:00:35.032 tst (EURUSD,H1) News #1 in 1970.01.01 00:07:24
2019.09.08 16:00:35.032 tst (EURUSD,H1) News #2 in 1970.01.01 00:09:15
Ich glaube nicht, dass bei unsachgemäßem Gebrauch Verständnis aufkommen kann.
Zumindest wird man sich darauf verständigen, dass es "hier keine Fische gibt").
Das haben wir schon oft von einigen lokalen Persönlichkeiten gehört.
Und das nur, weil wir es nicht verstanden haben.
Und es gibt Fische!
Nun, das war's. Hier ist eine Simulation, bei der die Nachrichtenzeiten und die Anzahl der Nachrichten für verschiedene Länder unterschiedlich sind:
aber es bleibt abzuwarten, ob Sie es in ein OOP verpacken müssen.
;)
Hier ist ein Protokoll darüber, wie alles aufgerufen wurde und was am Ende dabei herauskam:
Nein, Igor. Dies ist kein solcher Ansatz.
Die hervorgehobenen Zeichenfolgen sind drei Anwendungsfälle. Gleichzeitig ändert sich auch der Zeitbereich. Dann wird das Array values[] auf eine bestimmte Weise verarbeitet. Die Ereignis-ID wird verwendet, um die Beschreibung dieses Ereignisses zu erhalten. Seine Bedeutung, Zeit und andere Eigenschaften.
Das haben wir schon oft von einigen lokalen Persönlichkeiten gehört.
Und das nur, weil wir es nicht verstanden haben.
Und es gibt Fische!
Ich habe darüber gelesen. Es gibt Fische, aber nicht dort, wo man sie nicht versteht. Welche Art von Projekt sollte in mql5 sein, damit es Fische gibt... Ich möchte mindestens ein Projekt in mql5 sehen, in dem die Notwendigkeit von OOP gesehen wird.
Wahrscheinlich besteht keine Notwendigkeit für OOP. Im Prinzip kann alles in einem strukturierten Stil gemacht werden. Aber für mich persönlich begann der erste Drang, als ich beschloss, Strukturen anstelle von Gruppen globaler Variablen zu verwenden, die gefährlich groß geworden waren. Ich war bereits von Strukturen zu Klassen übergegangen, weil es logisch erschien, Funktionen, die Daten aus diesen Strukturen verarbeiteten, direkt in diese zu integrieren, was zur Erstellung von Klassen führte. Dabei geht es nicht um die Notwendigkeit, sondern einfach darum, die Daten zu ordnen und mit ihnen zu arbeiten.
Es ist nicht notwendig, das Objekt zu "töten", sobald es erstellt wurde und seine Aufgabe erfüllt hat.
Die erstellten Objekte können nach Beendigung des MQL-Programms mit der Funktion OnDeinit "getötet" werden,
Während das Programm läuft, können alle Objekte im Speicher gehalten werden und es kann darauf zugegriffen werden.
Wenn das Objekt seine Aufgabe erfüllt hat, warum sollte es dann im Speicher bleiben?
Wird es nicht zu einem Speicherleck kommen?
Nein, Igor. Das ist hier nicht der Ansatz.
Die hervorgehobenen Zeilen sind die drei Anwendungsfälle. In diesem Fall ändert sich der Zeitbereich. Dann wird das Array values[] auf eine bestimmte Weise verarbeitet. Die Ereignis-ID wird verwendet, um die Beschreibung dieses Ereignisses zu erhalten. Seine Bedeutung, Zeit und andere Eigenschaften.
der Ansatz ist nicht wichtig
Wenn Sie OOP verstehen wollen, meine Meinung (ich habe bereits geschrieben) - es ist bequem, aber OOP ist nur ein Paradigma, gut, eine Art des Schreibens, die mehrere OOP-Konzepte kombiniert - Wiki...
Sie können also das Gegenteil versuchen: Hier ist Ihre Aufgabe, Sie müssen sie in Daten und Möglichkeiten der Datenverarbeitung aufteilen...
1. Wo werden Sie die Daten speichern? - höchstwahrscheinlich eine Struktur
2. Wie werden Sie die Daten verarbeiten? - Höchstwahrscheinlich eine Reihe von Funktionen.
3. Wie werden Sie die Daten initialisieren? - höchstwahrscheinlich ein Array von Strukturen, und Sie müssen dieses Array auf Null setzen und dann mit Daten füllen
4. Wie gewährleisten Sie die Flexibilität von bereits geschriebenem Code - Refactoring?
Wenn Sie nun OOP verwenden:
1. in Feldern in einer Klasse, obwohl dieses Feld vielleicht eine Struktur sein wird, oder vielleicht werde ich überhaupt eine Basisklasse schreiben, die die Daten speichert und die Vererbung durchführt ODER diese Klasse wird ein Feld in der Klasse sein, die jetzt diskutiert wird
Wenn ich eine Basisklasse schreibe, kann ich Methoden in einer Basisklasse erstellen, um einfache Datenmanipulationen durchzuführen, und wenn ich von einer Basisklasse erbe, werden diese Methoden auch in der Klasse verfügbar sein.
2.2 Wenn ich nur eine Methode ändern möchte, nachdem ich von der Basisklasse geerbt habe, werde ich nichts in der Basisklasse neu schreiben, das ist nicht notwendig! - Ich schreibe einfach eine Methode (eine Funktion!) mit demselben Namen wie die Methode der Basisklasse, und schon ist es Vererbung!
3. es wird ein Konstruktor sein, und wenn ich keinen Konstruktor schreibe, wird er implizit aufgerufen, so dass ich im Hinterkopf behalte, dass jede Klasse, von der ich geerbt habe, und/oder jede Klasse in meinen Feldern immer einen Konstruktor haben wird; und OOP gibt mir die Möglichkeit, keinen Konstruktor zu schreiben, einen Konstruktor ohne Parameter zu schreiben, ein Dutzend weiterer Konstruktoren mit Parametern zu schreiben
4. Bei der Verwendung von OOP müssen Sie zuvor erstellte Codefragmente nicht neu schreiben, Sie können erben, Sie können .... Sie können Fehler machen, der Compiler räumt in den meisten Fällen hinter dem Programmierer auf!
Nun, das ist meine eher laienhaften Blick auf OOP, im Allgemeinen ist es bequem und um alles effizient arbeiten, die Hauptarbeit bei der Verwendung von OOP, nicht der Programmierer, sondern der Compiler-Entwickler, so dass die Felder / Methoden nicht verwendet werden, nicht in der kompilierten Datei enthalten, wo der Programmierer einen Fehler gemacht, gut, ihn zu warnen)))