Une question pour les experts de la POO. - page 25

 
Igor Makanu:

le concept même de la POO implique simplement de ne pas écrire - vous ne devez pas connaître l'implémentation de la méthode (dans votre exemple return(SymbolSelect(m_name,select))

Imaginez ça au lieu de cette ligne :

vous devez effectuer de nombreuses requêtes, des vérifications diverses, etc. - Cela vous prendra du temps pour écrire votre propre bibliothèque et étudier la matière

Supposons que votre tâche consiste à utiliser une seule méthode de la solution toute faite sous la forme d'une classe - vous créez une instance de la classe (objet) et utilisez la méthode toute faite Select(const bool select).

Si vous n'avez pas l'intention d'effectuer de telles opérations, libérez de la mémoire = supprimez l'objet.

Supposons que votre tâche consiste à afficher un bouton, en appuyant dessus, vous activez/désactivez le symbole dans la surveillance du marché ---> créez votre classe et encapsulez la classe prête à l'emploi bouton et la classe prête à l'emploi CSymbolInfo - la tâche est accomplie.

Le paradigme de la POO ne donne que des informations générales sur ce que l'on peut faire avec une classe - vous ne voulez pas encapsuler CSymbolInfo - eh bien, héritez-en votre classe.

Je crois, je ne comprends pas et je n'accepte pas. Lorsque vous aurez une tâche spécifique qui ne peut se passer de toutes ces réserves, alors l'"illumination mentale" et la compréhension viendront. Mais pour l'instant, de mon point de vue, les gadgets fantaisistesne sontpas toujours justifiés. Pas toujours ne veut pas dire jamais. Je suis heureux d'utiliser la classe Ctrade, mais je ne la prends pas comme mentionné ci-dessus. Si la description de la fonction SymbolSelect dans la documentation n'est pas difficile à trouver, dans SB il est déjà difficile de trouver la description.

Igor Makanu:

HH : "En résumé", l'essence de la POO est une solution rapide à un problème donné sans connaissance de l'implémentation.

Dans ce cas, au lieu de connaître l'implémentation, vous devez savoir comment appeler la méthode souhaitée, où la trouver, etc. S'agit-il d'une sorte de langage dans un langage de programmation ?

Je peux comprendre qu'un projet doive avoir plusieurs instances d'un objet. Mais jusqu'à présent, je n'ai vu aucune mise en œuvre de ce type, à l'exception de la démonstration d'Artem mentionnée ci-dessus. Dans ce cas, il est clair que c'est mieux, plus facile, plus simple, mais je ne suis pas parvenu à une compréhension complète précisément à cause de l'inutilité, du manque de tâche. Cela n'a pas de sens de changer l'objet pour une seule utilisation des fonctions mql5. C'est mon raisonnement.

 
Alexey Viktorov:

Dans ce cas, au lieu de connaître l'implémentation, vous devez savoir comment appeler la bonne méthode, où la trouver, etc. S'agit-il d'une sorte de langage dans un langage de programmation ?

regardez dans la documentation, tout ce qui est affiché publiquement est accompagné de manuels, pour ainsi dire, d'éthique

ce n'est pas un style, c'est un paradigme ! - un concept, des règles d'étiquette, personne n'est obligé d'écrire ainsi, mais pour une raison quelconque, c'est le style le plus courant

 
Igor Makanu:

l'essence de la POO est de résoudre rapidement une tâche donnée sans connaître l'implémentation.

Vous pouvez appeler une fonction en lui passant une structure contenant des données, et obtenir une solution tout aussi rapide sans connaître l'implémentation de cette fonction.
 
Alexey Navoykov:
Vous pouvez appeler une fonction, en lui passant une structure contenant des données, et obtenir une solution tout aussi rapide sans connaître l'implémentation de la fonction.

Oui, mais votre méthode sera limitée à cela, en OOP vous pouvez également hériter - même sans connaître l'implémentation et ajouter à votre tâche, la première chose qui vient à l'esprit - Bouton avec des bords arrondis, il y a des tonnes d'exemples sur le web

SZZ : et la logique de déploiement d'un objet à travers les constructeurs est assez pratique.

 
Реter Konow:

Une classe est une description d'un objet. Bien. Contient les propriétés et les fonctionnalités de l'objet. Ok. Tout cela est commandé, ouvert ou protégé.

Dans ce cas, l'OBJET lui-même n'est pas pris en compte. C'est dans le contexte de la classe. Dans le contexte de son nom et de sa description. C'est-à-dire qu'en POO, l'Objet, est exactement un ensemble d'attributs (non seulement des propriétés, mais aussi des éléments fonctionnels - méthodes), mais plus ordonné et encapsulé que moi. (Cela a plus de sens pour moi).

Peter, google enfin sur les classes, ce qu'elles sont dans le contexte de l'allocation de mémoire, des appels de méthode, c'est-à-dire ce que tout cela traduit pour le compilateur. La plupart des questions s'évaporeront d'elles-mêmes après cela.
 
Petros Shatakhtsyan:

Il faut lire des livres pour y voir clair. Au moins VC++ en 21 jours.

Je vous conseille d'utiliser MFC pour la première fois, de créer une application Windows basée sur CDialog, en créant toutes sortes d'objets et de voir avec quelle facilité ils sont gérés.

Après cela, vous jetterez votre entreprise. Malheureusement.

Eh bien, c'est peu probable. Le fait est que j'ai trouvé très peu de différences conceptuelles entre mon approche et la POO. Mon approche est également orientée objet. Les objets sont encapsulés dans le noyau et ont une représentation très spécifique. Ils sont reliés par des pointeurs, formant des complexes - éléments, fenêtres... Si vous allez au-delà des graphiques et créez une forme différente de noyau qui inclut plus de diversité, il sera aussi bon qu'en OOP.

La différence entre les approches réside dans le style d'écriture du code, la syntaxe et les méthodes de distribution des fonctionnalités. Dans mon approche, la fonctionnalité tend à être fusionnée, dans la POO, elle tend à être divisée. La fusion des fonctionnalités garantit l'efficacité du système et une faible quantité de syntaxe, tandis que la division des fonctionnalités facilite la portabilité du code. Il permet de brancher des modules. D'une manière générale, voici les différences.

Bien sûr, mon approche n'a pas encore cette large "objectivité". Mais, j'ai déjà des idées sur la façon de résoudre ce problème. Un noyau est d'un seul type, ce qui limite les propriétés qui y sont stockées, mais un noyau ne doit pas nécessairement être une matrice unique. Il peut s'agir d'un complexe de noyaux. Le principal avantage est la représentation numérique des objets, qui ne nécessite pas une longue description, une syntaxe supplémentaire et une fragmentation des fonctionnalités.

Mais, OOP est très intéressant pour moi. J'en tirerai une leçon).
 
Vladimir Simakov:
Peter, enfin, google classes, ce qu'elles sont dans le contexte de l'allocation de mémoire, des appels de méthode, c'est-à-dire ce en quoi le compilateur convertit tout cela. La plupart des questions s'évaporeront d'elles-mêmes après cela.
Ok. Je vais certainement le rechercher.
 

On a beaucoup réfléchi au concept de la POO, et voici le problème :

Faisons abstraction de la syntaxe et des termes techniques, en laissant les concepts de "Classe", "Objet", "Propriété", "Encapsulation", "Polymorphisme", "Héritage". Je vais décrire la "racine" philosophique du concept.

La réalité est perçue par la conscience à travers les prismes de l'"Espace", du "Temps" et de la "Matière" (c'est ainsi que fonctionnent les organes des sens), tandis que l'"Objet" est le résultat discret de leur interaction continue.

La multiplicité des formes d'interaction génère une variété d'objets qui sont "plantés" par l'inconscient du sujet sur un certain "cadre". Ce cadre a une structure ramifiée, en cascade, et est "construit" dans l'inconscient, étant un de ses "archétypes". Le cadre prend en charge de nouveaux objets (informations les concernant) qui sont distribués dans toute sa structure. C'est de là que vient le concept de POO.Il s'agit d'une distribution et d'une liaison conscientes d'objets imitant l'"algorithme" de l'inconscient. Ayant maîtrisé les méthodes de sa propre pensée, le sujet est capable de simuler son travail dans le mécanisme de "traçage" du cerveau - l'ordinateur. Même si un ordinateur n'est qu'une pathétique parodie de cerveau, l'homme lui-même ne perçoit que des ombres du monde objectif. La cascade, archétype de ramification, est un "modèle" de distribution des objets, des propriétés, des processus et de toutes les informations à l'intérieur de notre mémoire en général. C'est un outil biologique pour simplifier la perception de la réalité, en structurant un modèle du monde qui nous entoure. Il nous est donné par la nature. La conscience de notre propre mécanisme "naturel" (c'est-à-dire inconscient) de traitement de l'information est un niveau de conscience de soi nécessaire pourutiliser la POO.

Considérez cet archétype implicite, biologique, "arborescent", qui facilite la mémorisation, l'apprentissage et la perception, dans le contexte de son application "artificielle".Dans la POO, nous "produisons" des objets en encapsulant leurs descriptions dans des classes, où nous établissons leurs propriétés et leurs valeurs. Les relations entre les objets se reflètent dans leur classification et sont mises en œuvre par l'héritage des propriétés et des méthodes, du global au privé. En pratique, cela ressemble à ceci : chaque objet privé est juste un objet et possède donc toutes les propriétés d'un objet + ses propriétés privées. Les objets dérivés auront ses propriétés privées comme leurs propriétés communes, mais auront leurs propriétés privées. En outre, la chaîne peut se ramifier indéfiniment. Il en va de même pour les méthodes des objets. Une méthode reflète une action, une interaction, un processus, un changement d'état. Les méthodes des objets sont distribuées du général au privé comme les propriétés. S'il existe un processus général, chaque forme discrète aura ses propres propriétés. Et c'est le polymorphisme. C'est-à-dire que, contrairement à la surcharge, le polymorphisme fournit une implémentation privée différente d'une fonction sous-jacente tout en conservant son mécanisme sous-jacent. C'est l'héritage "fonctionnel".

Comme nous pouvons le voir, le terme "arborescent" dans la POO est partout ; quels que soient les schémas que vous proposez, vous obtiendrez toujours un "arbre"). Mais c'est exact, car nous ne faisons que copier nos propres modèles inconscients de traitement de l'information.

 
Реter Konow:

J'ai beaucoup réfléchi au concept de la POO et c'est ici :

...

C'est dur.

Peter, tu dois te lancer dans la politique. De tels talents ne sont pas demandés ici - dire beaucoup, de manière intelligente et incompréhensible, et sur rien.

 
Artyom Trishkin:

...

Laissez-moi vous expliquer. En résumé, la POO reproduit la distribution inconsciente des informations dans notre mémoire. Les informations sont "disposées" en cascade et de manière "arborescente". Ceci est conditionné par l'archétype inconscient (un mécanisme caché). Des personnes ont "ressenti" ce mécanisme et ont commencé à l'appliquer avec succès dans la programmation. La POO met en œuvre le transfert de propriétés et de fonctions communes à travers des chaînes d'héritage, selon le même schéma que notre inconscient.


En comprenant mieux le fonctionnement de nos esprits conscients et inconscients, nous serons en mesure de reproduire leur mécanisme dans l'ordinateur. J'ai simplement pris du recul par rapport aux détails techniques et je me suis penché sur la base du concept.