Fragen zu OOP in MQL5 - Seite 56

 
Aleksey Mavrin:

Du hast mir schon so oft gesagt, dass ich ein Narr bin und nichts verstehe, dass ich stolz auf meine Gelassenheit bin, dass ich dir keinen wohlverdienten Fick geschickt habe)

Im Grunde genommen macht eine verschachtelte Klasse öffentliche Methoden für private Felder optional, das ist die Verletzung der Kapselung, über die Sie schreiben. Gibt es weitere Argumente?

Sie demonstrieren Ihre Dummheit so kontinuierlich, dass ich Sie lieber verdientermaßen dorthin schicken würde.

Eine verschachtelte Klasse tut nicht das, was Sie über sie schreiben. Und die Aufgabe des Guardian-Musters kann ohne verschachtelte Klasse und unnötige öffentliche Methoden gelöst werden.

Zur Erinnerung: Hier ist ein Beispiel mit einer verschachtelten Klasse und öffentlichen Methoden.

 
Dmitry Fedoseev:

Sie demonstrieren Ihre Dummheit so beständig, dass ich Sie lieber dorthin schicken würde, wo Sie es verdient haben.

Eine verschachtelte Klasse tut nicht das, was Sie über sie schreiben. Und das Problem des Guardian-Musters kann ohne verschachtelte Klasse und ohne unnötige öffentliche Methoden gelöst werden.

Lasst uns herausfinden, wer am Ende geht))

Was kann eine verschachtelte Klasse nicht?

Sie haben geschrieben, dass "die Kapselung gebrochen ist, weil öffentliche Methoden für private Felder erstellt werden".

Eine verschachtelte Klasse hat Zugriff auf private Felder, ohne dass öffentliche Methoden erstellt werden müssen.

s.s. Nach der Rangliste zu urteilen, sind Sie ein Stammgast hier. Aber man muss lernen, zu kommunizieren und einen Dialog zu führen. Aber das brauchen Sie in Ihrem Leben nicht.

 
Aleksey Mavrin:

Lasst uns herausfinden, wer am Ende geht.)

Was kann die verschachtelte Klasse nicht?

Sie haben geschrieben, dass "die Kapselung gebrochen ist, weil öffentliche Methoden für private Felder erstellt werden".

Eine verschachtelte Klasse hat Zugriff auf private Felder, ohne dass öffentliche Methoden erstellt werden müssen.

s.s. Nach der Rangliste zu urteilen, sind Sie ein Stammgast hier. Aber man muss lernen, zu kommunizieren und einen Dialog zu führen. Aber man braucht sie nicht im Leben.

Zur Erinnerung: Hier ist ein Beispiel mit einer verschachtelten Klasse und öffentlichen Methoden (d. h. die verschachtelte Klasse hat nicht dazu beigetragen, dass überhaupt keine öffentlichen Methoden erstellt werden müssen).

Die verschachtelte Klasse ist nur eine Frage der Klassensichtbarkeit, nicht der Objektsichtbarkeit. Die verschachtelte Klasse erlaubt es lediglich nicht, ein Objekt dieser Klasse außerhalb der Klasse, in der sie beschrieben wird, zu erstellen. Deshalb müssen Sie gehen.

 
Aleksey Mavrin:

Genau - die richtige Struktur. Zu diesem Zweck lohnt es sich, alle möglichen Varianten eben dieser Struktur in Betracht zu ziehen, ihre Vor- und Nachteile für eine bestimmte Aufgabe zu analysieren (unter Berücksichtigung der Anforderungen an Erweiterbarkeit und Wartung usw.) und die beste auszuwählen.

Und die berüchtigten Muster selbst (was auch immer sie genau sein sollen) sind hier nicht einmal eine Variante der Struktur, sondern nur ein Bezugspunkt für das Gehirn. Es ist wie "Wenn das Problem auf die Beschreibung des Problems von Muster X passt, bedeutet das, dass es durch die Anwendung von Muster X gelöst werden kann", aber man kann es auch auf einen Haufen anderer Wege lösen.

Und im Allgemeinen wurden diese 27 Grundmuster als eine Art Hinweis für Programmierer auf typische Probleme geboren, wie man sie nach den OOP-Prinzipien lösen kann. Wenn es keine Aufgabe gibt, den Grundsätzen zu folgen, wie es bei Dmitry mit den Strukturen der Fall ist, werden keine Muster benötigt.

Danke, guter Beitrag

Sie sind anders als der Rest des Gremiums ;)

 
Dmitry Fedoseev:

Zur Erinnerung: Hier ist ein Beispiel mit einer verschachtelten Klasse und öffentlichen Methoden (d.h. die verschachtelte Klasse hat nicht dazu beigetragen, die Notwendigkeit öffentlicher Methoden zu beseitigen).

Eine verschachtelte Klasse ist nur eine Frage der Sichtbarkeit der Klasse, nicht der Sichtbarkeit des Objekts. Die verschachtelte Klasse erlaubt es lediglich nicht, ein Objekt dieser Klasse außerhalb der Klasse, in der sie beschrieben wird, zu erstellen. Sie müssen also gehen.

Nein )) Dummheit )) Eine verschachtelte Klasse hat Zugriff auf ALLE PRIVATEN Felder der Klasse, in der sie verschachtelt ist. (Sie wissen das nicht? Dann gibt es nichts zu besprechen.

Ganz zu schweigen von dem Unsinn, den Sie geschrieben haben, dass das gesamte Objekt für den Shot kopiert werden muss...)) Es stellt sich heraus ... Es macht mir nichts aus, wenn du nicht bald wiederkommst))

 
Igor Makanu:

Danke, guter Beitrag.

Du bist anders als der Rest der Diskussion ;)

Igor, auch Dir vielen Dank, und auf ein freundliches Wort) und dass Du interessante Themen für konstruktive gegenseitige Diskussionen schaffst ;)

 
Aleksey Mavrin:

Nein )) es ist Unsinn )) Eine verschachtelte Klasse hat Zugriff auf ALLE PRIVATEN Felder der Klasse, in der sie verschachtelt ist. (Sie wissen das nicht? Dann gibt es nichts zu besprechen.

Ganz zu schweigen von dem Unsinn, den Sie geschrieben haben, dass das gesamte Objekt für den Shot kopiert werden muss...)) Es stellt sich heraus ... Es macht mir nichts aus, wenn du nicht bald wiederkommst))

Und wie nennt man eine verschachtelte Klasse?

Ich habe hier überhaupt nichts über Snapshot geschrieben.

 
class C1{
   protected:
      int x;
      class C2{
         protected:
         public:
         C2(){
            x=1;
         }
      };      
   public:
};

Wo ist der Zugang zu x von C2 aus?

Auch hier ist eine verschachtelte Klasse nur eine Frage der Sichtbarkeit der Klasse, um ein Objekt zu erstellen. Ein Objekt der Klasse C2 kann nur innerhalb der Klasse C1 erstellt werden. Das war's. Das ist der einzige Unterschied zum Schreiben einer Schrift:

class C1{
   protected:
      int x;
   public:
};

class C2{
   protected:
   public:
   C2(){
      x=1;
   }
}; 


Aber Sie nennen doch sicher etwas anderes eine verschachtelte Klasse? Sagen Sie uns was.

 
ahah )
 
TheXpert:
ahah )

Sie wussten es auch nicht?