![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ich verstehe, warum ich es nicht verstehe, es ist nicht mein Code, außerdem ist es nur ein Teil davon. Aber Sie scheinen es auch nicht zu verstehen - oder irre ich mich?
Ich benutze keine Zeiger...
Früher habe ich genauso gearbeitet wie du, nur mit Funktionen, aber mit der Zeit mussten sie irgendwie gespeichert werden, dann musste ich sie suchen, jede Funktion machte ihre eigenen zusätzlichen Aktionen.
Jetzt habe ich alles in Klassen umgebaut, und wenn ich die Klasse Order aufrufe, erhalte ich alles, was ich brauche, sowie eine Liste der verfügbaren Funktionen und Methoden...
Deshalb mache ich gerne große generische Codeblöcke.
Kann nicht einmal glauben, dass der Autor eines guten GUI ohne OOP
Codezeilen einsparen?!
Nein, Ihr Beispiel ist sehr gut.
Es geht nicht um prozedurale Programmierung.
Es gibt ein viel wichtigeres Kriterium für die Programmqualität: die Klarheit des Codes.
Die Lösung, die Sie gegeben haben, ist schrecklich: Es ist überhaupt nicht klar, WELCHE Funktion sinnvollerweise aufgerufen wird. Ich würde einen normalen Schalter und einen Kommentar zu jedem Aufruf schreiben. Dies ist der richtige Code.
Ich schließe aus Ihrem Beispiel, dass OOP eine schädliche Sache ist.
Und warum sollte man sich für 100 Varianten entscheiden, wenn man im Voraus weiß, dass nur 1 verwendet wird?
Welchen Sinn hat ein Wust von 100 Varianten von Schaltern im Vergleich zu drei Codezeilen?
Es ist nicht richtig, etwas komplex, groß und langsam zu machen, was rationell, optimal (sogar perfekt) erledigt werden kann.
OOP ist nur dann schädlich, wenn man es falsch einsetzt.
Bitte antworten Sie auf diesen Kommentar.
Deshalb mache ich gerne große, universelle Codeblöcke.
Was macht sie universell?
Wozu braucht man einen Schalter mit 100 Varianten, wenn man im Voraus weiß, dass nur eine verwendet wird?
Wie übersichtlich ist ein Schalter mit 100 Varianten im Vergleich zu drei Codezeilen?
Komplexe, große und langsame Dinge zu machen, die rationell, optimal (sogar perfekt) erledigt werden können, ist nicht der richtige Ansatz.
Bitte antworten Sie auf diesen Kommentar.
Es handelt sich nicht um einen Spoiler, sondern um eine Dokumentation der Programmfunktionen in Verbindung mit dem Programmtext. Das ist das Wichtigste, nicht das, was allein funktioniert.
Ich benutze keine Zeiger...
Früher habe ich genauso gearbeitet wie du, nur mit Funktionen, aber mit der Zeit mussten sie irgendwie gespeichert werden, dann musste ich sie suchen, jede Funktion machte ihre eigenen zusätzlichen Aktionen.
Jetzt habe ich alles in Klassen umgebaut, und wenn ich die Klasse Order aufrufe, erhalte ich alles, was ich brauche, sowie eine Liste der verfügbaren Funktionen und Methoden...
Dies ist kein Spoiler, sondern eine Dokumentation der Funktionalität des Programms in Verbindung mit dem Text des Programms. Das ist das Wichtigste, nicht das, was allein funktioniert.
Sowohl die Schlacke als auch der Ballast. Die Fliegen sollten getrennt sein, die Koteletts getrennt. Die Dokumentation ist wichtig, aber sie sollte den Betrieb des Programms nicht beeinträchtigen.
Was macht sie universell?
Sie benötigen zum Beispiel einen Block, der grafische Objekte relativ zueinander positioniert, indem er Steuerelemente erstellt. Gleichzeitig steuert derselbe Block das Phänomen der Objekte, d. h. er verbirgt einige Objekte und zeigt andere. Es berechnet auch die Abmessungen der Bildlaufleiste und die Gesamtabmessungen des Fensters. Sie berechnet auch die Bewegung des Schiebereglers in der Bildlaufleiste. Dies ist der universelle Block der Objektbeziehungen.
Oder ein Block, der die Größe des Fensters steuert, wenn der Fenstergriff ergriffen wird. Oder ein Block, der die Zustände von Steuerelementen kontrolliert. Oder der Block, der berechnet, auf welchem Element sich der Cursor befindet, und gleichzeitig viele globale Parameter in den Fokus bringt...
Sie benötigen zum Beispiel einen Block, der grafische Objekte relativ zueinander positioniert, indem er Steuerelemente erstellt. Gleichzeitig steuert derselbe Block das Phänomen der Objekte, d. h. er verbirgt einige Objekte und zeigt andere. Es berechnet auch die Abmessungen der Bildlaufleiste und die Gesamtabmessungen des Fensters. Sie berechnet auch die Bewegung des Schiebereglers in der Bildlaufleiste. Dies ist der universelle Objektbeziehungsblock.
Aber das wird doch durch "if and switch" realisiert, oder?
Aber das wird doch durch "if and switch" realisiert, oder?