Eine Frage an die OOP-Experten. - Seite 7

 
Das war's, ich mache mich auf, um OOP zu lernen. Ich werde allen antworten, wenn ich zurückkomme).
 
Nikolai Semko:

Sparen Sie keine 45 Minuten, Peter. Zunächst einmal ist es sehr wichtig zu verstehen, wovon dieser Mann spricht. Viele werden ihm wahrscheinlich widersprechen, aber im Allgemeinen hat er recht:


Ein interessanter Vortrag, aber es bleiben zu viele Fragen offen. Er spricht von schädlichen Auswirkungen von Settern und Gettern, aber erklären Sie mir, was der Unterschied ist, wenn ich Fehler in Settern oder in Konstruktoren einführe? Es stellt sich also heraus, dass SB MQL5 ein einziger großer Fehler ist? Es gibt eine Menge dieser Setter und Getter, nicht wahr?

 
Alexey Viktorov:

Interessanter Vortrag, aber es bleiben zu viele Fragen offen. Hier spricht er über den Schaden von Settern und Gettern, aber bitte erklären Sie mir, was der Unterschied ist, wo man Fehler macht, wenn man Werte über Setter oder im Konstruktor eingibt? Es stellt sich also heraus, dass SB MQL5 ein einziger großer Fehler ist? Es gibt eine Menge von all diesen Settern und Gettern, nicht wahr?

auch diese 45 Minuten gestern angeschaut.... Nun, es ist, als ob sogar die Studenten den Autor in Stücke geschlagen hätten.

Die Theorie sagt es schön: Hier ist das Objekt, es muss alles können - und es sollte nicht an die Hardware gebunden sein, denn Sie kommandieren den PC, nicht Sie! Wenn das Objekt nicht weiß, wie man etwas tut, schreiben wir eine andere kleine Klasse, in der Praxis ist dies nicht der Fall - wenn Sie sich weigern, ein Objekt zu kontrollieren, wird es Blöcke von sich wiederholenden Code, Vererbung wird teilweise dieses Problem zu lösen, aber im Allgemeinen, anstatt das Problem zu lösen, bekommt der Programmierer einen Haufen von Objekten (oder einen Berg von Schmerzen? )))) und müssen herausfinden, wie es zu verwalten alle ...... imho, wenn IT-Giganten schrieb Code ähnlich in der Logik, es funktioniert, und Innovatoren, gut, sie haben immer gewesen und werden, aber ihre Ergebnisse, aus irgendeinem Grund, sind nicht sichtbar.

ZS: Wie kann man die Farbe der Schaltfläche ändern? - das vorherige Objekt löschen und eine neue Schaltfläche in einer anderen Farbe erstellen? - und wie erhält man den Button-Status? - und wenn es sich um ein Farbschema mit Hunderten von Schaltflächen handelt - alle wieder löschen und neue erstellen? ;)

 
Igor Makanu:

auch diese 45 Minuten gestern gesehen.... Nun ja, sogar die Studenten haben den Autor gewissermaßen zerschlagen.

Die Theorie sagt es schön: Hier ist das Objekt, es muss alles können - und das alles soll nicht an die Hardware gebunden sein, denn Sie befehlen dem PC, nicht der PC Ihnen! Wenn das Objekt nicht weiß, wie man etwas tut, schreiben wir eine andere kleine Klasse, in der Praxis ist dies nicht der Fall - wenn Sie sich weigern, ein Objekt zu kontrollieren, wird es Blöcke von sich wiederholenden Code, Vererbung wird teilweise dieses Problem zu lösen, aber im Allgemeinen, anstatt das Problem zu lösen, bekommt der Programmierer einen Haufen von Objekten (oder einen Berg von Schmerzen? )))) und müssen herausfinden, wie es zu verwalten alle ...... imho, wenn IT-Giganten schrieb Code ähnlich in der Logik, es funktioniert, und Innovatoren, gut, sie haben immer gewesen und werden, aber ihre Ergebnisse, aus irgendeinem Grund, sind nicht sichtbar.

SZS: Wie kann man die Farbe der Schaltfläche ändern? - das vorherige Objekt löschen und eine neue Schaltfläche in einer anderen Farbe erstellen? - und wie erhält man den Button-Status? - und wenn es sich um ein Farbschema mit Hunderten von Schaltflächen handelt - alle wieder löschen und neue erstellen? ;)

Das Lustige daran ist, dass selbst dieunbewusste Anwendung von OOP-Prinzipien zu recht greifbaren Ergebnissen führt!

 
Alexey Viktorov:

Interessanter Vortrag, aber es bleiben zu viele Fragen offen. Hier spricht er über den Schaden von Settern und Gettern, aber bitte erklären Sie mir, was der Unterschied ist, wo man Fehler macht, wenn man Werte über Setter oder im Konstruktor eingibt? Es stellt sich also heraus, dass SB MQL5 ein einziger großer Fehler ist? Es gibt eine Menge von all diesen Settern und Gettern.

Die Entwickler haben alles richtig gemacht - die Standardbibliothek ist auf den Einstieg ausgerichtet, und für die meisten Aufgaben ist sie völlig ausreichend. Um in OOP zu schreiben (und nicht nur mit Begriffen zu jonglieren), braucht man ein fortgeschrittenes Niveau und eine bestimmte Art des Denkens. Wenn Sie es nicht haben, können Sie immer noch alles in Klassenumwandeln und denken, dass dies OOP ist. Es kann wahrscheinlich nicht gelehrt werden - das Verständnis kommt mit der Zeit.

 
A100:

Wenn Sie es nicht haben, können Sie immer noch alles in Klassen verpacken und denken, dass dies OOP ist.

Wieder einmal versuchen Sie, mit Ihrer Klugheit zu prahlen, aber leider zeigen Sie keine Beispiele, und wieder versuchen Sie, sich etwas für Leute auszudenken, die Sie nicht kennen, zu sagen, zu...

imho, kleinlich, böse, gemein sein wollend - allgemein gesprochen ))))

 
Igor Makanu:

Wieder einmal versuchen Sie, Ihre Intelligenz zur Schau zu stellen, aber leider zeigen Sie keine Beispiele dafür, und wieder versuchen Sie, Dinge für Leute zu erfinden, die Sie nicht kennen, um...

imho, kleinkariert, fies, gemein sein wollend - ganz allgemein, lasst euch nicht ablenken ))))

Ich zeige die falschen Beispiele - und gebe damit eine Angelrute, aber keinen Fisch.

 
A100:

Ich zeige falsche Beispiele - und gebe damit eine Angelrute, aber keinen Fisch.

Was ist los? Die Beispiele funktionieren im Tester und im Handel.

Ich habe wiederholt geschrieben, dass, wenn es praktisch ist, es bedeutet, dass es verwendet werden kann und sollte.

Die Vererbung für einfache Strategien, von denen jeder Händler in den Runet-Foren jede Woche ein Dutzend zu erfinden versucht, macht in den meisten Fällen keinen Sinn, während meine Beispiele eine schnelle Portabilität des fertigen Codes ermöglichen.

Wenn Sie eine konkrete Frage oder Anregung haben, möchte ich sie vielleicht diskutieren, wenn nicht, was bringt es, etwas zu diskutieren, das es nicht gibt?

 
Igor Makanu:

Wo liegt der Fehler? Die Beispiele funktionieren sowohl im Tester als auch im Handel.

Der Fehler liegt im Hinblick auf OOP und nicht im Hinblick auf das Endergebnis. Wenn Sie den Fehler nicht verstehen, sehen Sie sich das Video noch einmal an, und dann immer wieder, bis Sie es verstehen. Ich habe dieses Video selbst zum ersten Mal gesehen, aber ich könnte es nicht so einfach und verständlich erklären

 
A100:

Ein Fehler in Bezug auf OOP, nicht in Bezug auf das Endergebnis. Wenn Sie den Fehler nicht verstehen, sehen Sie sich das Video noch einmal an, dann noch einmal und noch einmal - bis Sie ihn verstehen.

Leider nicht, der Referent konnte nicht einmal die Fragen der Schüler beantworten, die Fragen waren korrekt.

Kommen wir zu den praktischen Dingen.

Ich vermute, dass Sie den Autor des Videos zu unterstützen, ist sein Name Egor (es ist so geschrieben), die wichtigste Botschaft des Videos war es, vollständig in OOP gehen - die echte OOP!

OK! Geben Sie ein einfaches Beispiel für die Verwendung von OOP, wie vom Autor vorgeschlagen, die Aufgabe ist einfach, er selbst erwähnt die Arbeit mit Dateien und er selbst konnte die Frage der Studenten nicht beantworten

Ich verwende die CFile-Klasse ziemlich regelmäßig - ich bin zu faul, um zusätzlichen Code zu schreiben und bin es gewohnt, vorgefertigten Code zu verwenden, er löst meine Probleme gut

Was in CFile sollte Ihrer Meinung nach umgeschrieben werden, basierend auf dem, was der Autor des Videos sagte?

Grund der Beschwerde: