OOP vs. prozedurale Programmierung - Seite 25

 

1. einige Klassen auf der Grundlage des Artikels erstellt. Ich verstehe nur nicht, warum man Klassen verwenden sollte, anstatt einfach eine Include-Datei mit aufrufbaren Funktionen zu erstellen?

2. ich habe eine Frage, um die Optimierungsgeschwindigkeit zu verbessern, ist es besser, die Include-Dateien in mehrere aufzuteilen oder alles in eine zu packen?

3. ich habe das Gefühl, dass, wenn ich den Indikator in einer Include-Datei aufrufe, anstatt in einem Expert Advisor, die Optimierungsgeschwindigkeit schneller ist...?

 
forexman77:

1. einige Klassen auf der Grundlage des Artikels erstellt. Ich verstehe nur nicht, warum man Klassen verwenden sollte, anstatt einfach eine Include-Datei mit aufrufbaren Funktionen zu erstellen?

2. ich habe eine Frage, um die Optimierungsgeschwindigkeit zu verbessern, ist es besser, die Include-Dateien in mehrere aufzuteilen oder alles in eine zu packen?

3. ich habe das Gefühl, dass wenn ich den Indikator in einer Include-Datei aufrufe, anstatt in einem EA, die Optimierungsgeschwindigkeit schneller ist...?

1. Klassen werden benötigt, wenn Polymorphismus erforderlich ist, d.h. wenn verschiedene Funktionen mit ähnlichem Zweck aufgerufen werden. Das einfachste Beispiel ist, wenn ein Block einen Zeiger auf einen Auftrag erhält und wir sein Ticket abrufen müssen. Unter Berücksichtigung von realen und historischen Aufträgen, sowie MT4 und MT5 - erhalten wir vier verschiedene Funktionen, mit denen wir arbeiten können.

Im Falle eines prozeduralen Ansatzes müssen wir einen bestimmten Schalter haben, der die notwendige Funktion je nach Auftragsart aufruft. Im Falle von OOP rufen wir einfach die Funktion auf, um das Ticket zu erhalten. Die erforderliche Funktion wird automatisch aufgerufen. Im Falle von OOP ist jedoch eine Vorarbeit erforderlich, um die Hierarchie der Klassen und Funktionen zu definieren.

(2) Die Optimierung wird entsprechend dem fertigen ausführbaren Modul durchgeführt. Dabei spielt es keine Rolle, ob der Quellcode in mehrere Dateien aufgeteilt ist oder in einer einzigen großen Datei zusammengefasst ist. Die Aufteilung in Dateien ist allein die Entscheidung des Programmierers, da sie für ihn bequem ist.

3. Es gibt absolut keinen Unterschied. Ich persönlich rufe nie irgendwelche Indikatoren auf, sondern ziehe es vor, ihre Werte direkt in einem Expert Advisor zu berechnen.

 
George Merts:

1. Klassen werden benötigt, wenn Polymorphismus - d.h. der Aufruf verschiedener Funktionen mit ähnlichem Zweck - erforderlich ist. Das einfachste Beispiel - ein Block erhält einen Zeiger auf eine Bestellung, wir müssen sein Ticket zu bekommen. Unter Berücksichtigung von realen und historischen Aufträgen, sowie MT4 und MT5 - erhalten wir vier verschiedene Funktionen, mit denen wir arbeiten können.

Im Falle eines prozeduralen Ansatzes müssen wir einen bestimmten Schalter haben, der die notwendige Funktion je nach Auftragsart aufruft. Im Falle von OOP rufen wir einfach die Funktion auf, um das Ticket zu erhalten. Die erforderliche Funktion wird automatisch aufgerufen. Im Falle von OOP ist jedoch eine Vorarbeit erforderlich, um die Hierarchie der Klassen und Funktionen zu definieren.

(2) Die Optimierung wird entsprechend dem fertigen ausführbaren Modul durchgeführt. Dabei spielt es keine Rolle, ob der Quellcode in mehrere Dateien aufgeteilt oder in eine große Datei gepackt ist. Die Aufteilung in Dateien ist allein die Entscheidung des Programmierers, dies selbst zu tun.

3. Es gibt überhaupt keinen Unterschied. Ich persönlich rufe nie irgendwelche Indikatoren auf, sondern ziehe es vor, ihre Werte direkt in einem Expert Advisor zu berechnen.


Ich verstehe. Ich danke Ihnen. Natürlich ist das alles sehr praktisch, denn wir können eine Menge Code in Dateien und Klassen verpacken und nur ein paar Zeilen im Expert Advisor lassen.

Unabhängig davon ist es einfacher, Codefragmente auf Fehler zu überprüfen, etwas Neues hinzuzufügen usw. Der Code wird leichter verständlich, insbesondere für µl5.

 
Реter Konow:
Es ist nur unklar, warum so viele einheimische Gärtner zu überzeugten Baggern geworden sind und in ihrem eigenen Grundstück unter einem Baum eine Grube anlegen).

Sie müssen beschlossen haben, auch auf ihrem Grundstück ein Haus zu bauen. Was ist daran falsch?

Ja, natürlich, auch viele der großen Kanäle, die die Menschheit heute nutzt, wurden mit einer Schaufel gegraben. Aber damals gab es einfach noch keine Bagger. Warum also eine Grube mit einer Schaufel ausheben, wo es doch Bagger gibt?

 
Nikolai Semko:

Sie müssen beschlossen haben, auch auf ihrem Grundstück ein Haus zu bauen. Was ist daran falsch?

Ja, natürlich, sogar viele der großen Kanäle, die die Menschheit heute nutzt, wurden mit einer Schaufel gegraben. Aber damals gab es einfach noch keine Bagger. Warum also eine Grube mit einer Schaufel ausheben, wo es doch Bagger gibt?


Der Punkt ist, dass das, was Sie mit "Schaufel" meinen, überhaupt nicht dem entspricht, was ich mit "prozeduraler" Programmierung meine. Ich spreche überhaupt nicht darüber, werden Sie vielleicht sagen. Ich will damit sagen, dass die Methoden zur Lösung von Problemen, die einige Leute hier anwenden, an sich sehr schwach sind. Welchen Unterschied macht es also, ob Bagger oder Schaufel, wenn beide nicht effektiv eingesetzt werden?


Das ist eine Frage der Professionalität, und ihr Fehlen kann nicht durch ein Werkzeug ersetzt werden...


Und wenn Sie über Professionalität verfügen, können Sie mit verfahrenstechnischen Methoden Berge errichten. Glauben Sie mir.

 
Реter Konow:

Der Punkt ist, dass das, was Sie mit "Schaufelware" meinen, überhaupt nicht dem entspricht, was ich mit "prozeduraler" Programmierung meine. Ich spreche überhaupt nicht darüber, werden Sie vielleicht sagen. Ich will damit sagen, dass die Methoden zur Lösung von Problemen, die einige Leute hier anwenden, an sich sehr schwach sind. Welchen Unterschied macht es also, ob Bagger oder Schaufel, wenn beide nicht effektiv eingesetzt werden?


Das ist eine Frage der Professionalität, und ihr Fehlen kann nicht durch ein Werkzeug ersetzt werden...


Und wenn Sie über Professionalität verfügen, können Sie mit verfahrenstechnischen Methoden Berge errichten. Glauben Sie mir.


Ich widerspreche nicht, aber ich würde meine Energie lieber darauf verwenden, ein professioneller Baggerführer zu werden als ein professioneller Ausgräber.

Und ich weiß nicht, was Sie mit "prozeduraler" Programmierung meinen, aber ich weiß, dass OOP eine evolutionäre Entwicklung der prozeduralen Programmierung ist.

 
forexman77:

1. einige Klassen auf der Grundlage des Artikels erstellt. Ich verstehe nur nicht, warum man Klassen verwenden sollte, anstatt einfach eine Include-Datei mit aufrufbaren Funktionen zu erstellen?

2. ich habe eine Frage, um die Optimierungsgeschwindigkeit zu verbessern, ist es besser, die Include-Dateien in mehrere aufzuteilen oder alles in eine zu packen?

3. ich habe das Gefühl, dass, wenn ich den Indikator in einer Include-Datei aufrufe, anstatt in einem Expert Advisor, die Optimierungsgeschwindigkeit schneller ist...?

Das Geheimnis ist klar - es ist ein Artikel :-) es gibt Code um des Codes willen und den Umfang des Artikels selbst... "Lies nicht die Zeitung, bevor du isst" :-)


 
Реter Konow:

Der Punkt ist, dass das, was Sie mit "Schaufelware" meinen, überhaupt nicht dem entspricht, was ich mit "prozeduraler" Programmierung meine. Ich spreche überhaupt nicht darüber, werden Sie vielleicht sagen. Ich will damit sagen, dass die Methoden zur Lösung von Problemen, die einige Leute hier anwenden, an sich sehr schwach sind. Welchen Unterschied macht es also, ob Bagger oder Schaufel, wenn beide nicht effektiv eingesetzt werden?


Das ist eine Frage der Professionalität, und ihr Fehlen kann nicht durch ein Werkzeug ersetzt werden...


Und wenn Sie über Professionalität verfügen, können Sie auch mit verfahrenstechnischen Methoden Berge errichten. Vertrauen Sie mir.


Im Allgemeinen habe ich das Gefühl, Peter, dass du dir deine mit einer Schaufel ausgehobene Grube ansiehst und die mit einem Bagger ausgehobene Grube deines Nachbarn. Sie vergleichen und sehen, dass Ihr Trench größer ist und flachere Kanten hat. Und Sie kommen zu dem Schluss, dass es besser ist, mit einer Schaufel zu graben. Stellen Sie sich vor, Sie hätten gelernt, mit einem Bagger zu graben... und Sie können die Ränder mit einer Schaufel ausgleichen.

 
Nikolai Semko:

Und ganz allgemein, Peter, habe ich das Gefühl, dass du dir deine Grube ansiehst, die mit einer Schaufel ausgehoben wurde, und die Grube deines Nachbarn, die mit einem Bagger ausgehoben wurde. Sie vergleichen und sehen, dass Ihr Trench größer ist und flachere Kanten hat. Und Sie kommen zu dem Schluss, dass es besser ist, mit einer Schaufel zu graben. Stellen Sie sich vor, Sie hätten gelernt, mit einem Bagger zu graben... ...und man kann die Kanten mit einer Schaufel ausgleichen.

Nikolai, wenn man die Werkzeuge vergleicht, habe ich überhaupt nicht mit einer Schaufel gegraben. Es ist ein anderes Werkzeug, ein viel cooleres. Ich habe noch nicht herausgefunden, wie ich es nennen soll, aber es ist durchaus möglich, dass man mit einem Bagger nicht mithalten kann. Die Zukunft wird es zeigen...


Im Allgemeinen respektiere ich einen Bagger als Werkzeug, aber ich hatte keine Zeit, ihn zu studieren. Eine andere Idee hat sich durchgesetzt).

 
Реter Konow:

Nikolai, wenn man die Werkzeuge vergleicht, habe ich überhaupt nicht mit einer Schaufel gegraben. Es ist ein anderes Werkzeug, ein viel cooleres. Ich habe noch nicht herausgefunden, wie ich es nennen soll, aber es ist gut möglich, dass ich auch mit einem Bagger nicht mithalten kann. Die Zukunft wird es zeigen...

Im Allgemeinen respektiere ich einen Bagger als Werkzeug, aber ich hatte keine Zeit, ihn zu studieren. Eine andere Idee hat sich durchgesetzt).

Nun, dann sollte das Thema anders klingen. Etwas wie: "Ein neues Toolkit für die Programmierung" oder "Ein neues Programmierparadigma"...
Wenn es wahr ist, dass du etwas Cooleres als OOP geschaffen hast, wirst du dann dein Autogramm geben, wenn du berühmt wirst?