Tu as ton propre emballage, l'autre a le sien. La question était de savoir s'il était possible de créer une enveloppe plus pratique que MQL4.
Je ne pense pas qu'il y ait beaucoup de choix à faire...
Personnellement, je n'ai besoin de l'enveloppe que pour le multiplateforme, afin de séparer la logique du conseiller expert des spécificités de telle ou telle plateforme.
Bien sûr, vous devez payer pour la beauté de la POO avec des ressources et beaucoup de temps passé à déboguer. La POO n'a de sens qu'en tant qu'enveloppe de texte pratique ou lorsqu'elle est utilisée de manière minimale pendant l'initialisation de l'exécution... En fait, la POO n'était qu'un truc marketing de Microsoft pour augmenter les coûts des heures de travail des programmeurs et pour stimuler l'achat d'équipements plus avancés. Et ils ne sont pas idiots eux-mêmes et écrivent tous les logiciels en C et en assembleur.
Dans MQL, il est impossible de séparer "sans détour" l'implémentation des méthodes du prototype et il n'y a aucun moyen de fournir à l'utilisateur (client, testeur, ami/amie) un fichier *.mqh séparé et un fichier *.ex4 séparé (similaire à *.h et .obj/lib/dll en C++).
Dans MQL, il est impossible de séparer "inconditionnellement" l'implémentation des méthodes du prototype et il n'y a aucun moyen de fournir à l'utilisateur (client, testeur, ami/amie) un fichier *.mqh séparé et un fichier *.ex4 séparé (similaire à *.h et .obj/lib/dll en C++).
Pourriez-vous être plus précis sur la tâche à accomplir ? Il semble assez simple de fournir un en-tête avec une fabrique importée qui renvoie des interfaces propres, et toute l'implémentation est entassée dans ex4.
Pouvez-vous être plus précis sur la tâche à accomplir ? Il semble qu'il soit possible de fournir un en-tête avec une fabrique importée, qui renvoie des interfaces propres, et toute l'implémentation est stockée dans ex4.
La tâche est de donner à l'utilisateur la bibliothèque de classes avec le moins d'effort possible, qui consiste en : mqh où les classes sont décrites et ex4 où leur implémentation est stockée.
La seule option à ce jour traîne beaucoup de texte avec des béquilles pour contourner ce goulot d'étranglement.
Si vous connaissez un moyen court et pratique de supprimer l'implémentation de CFoo dans ex4, veuillez partager la recette.
la tâche consiste à donner à l'utilisateur une bibliothèque de classes composée de : mqh dans laquelle les classes sont décrites et ex4 dans laquelle elles sont implémentées.
La seule option jusqu'à présent consiste à tirer beaucoup de texte avec des béquilles pour contourner ce goulot d'étranglement.
Si vous connaissez un moyen court et pratique de supprimer l'implémentation de CFoo dans ex4, veuillez partager la recette.
Eh bien, j'ai déjà écrit un moyen - pourquoi il ne convient pas ? Vous créez une méthode d'usine, ou fonction, qui renvoie la classe abstraite (interface) décrite dans le fichier d'en-tête. Toute la mise en œuvre est cachée. L'exemple réel peut être trouvé, par exemple, dans mon blog sur la bibliothèque d'optimisation des experts à la volée (en anglais).
Шаблон проектирования Тип: Назначение: Структура: Плюсы: Минусы: Описан в Design Patterns Фабричный метод (англ. также известен как Виртуальный конструктор (англ. )) — порождающий шаблон проектирования, предоставляющий подклассам интерфейс для создания экземпляров некоторого класса. В момент создания наследники могут определить, какой...
Eh bien, j'ai déjà écrit une méthode - qu'y a-t-il de mal à cela ? Vous créez une méthode de fabrique, ou fonction, qui renvoie une classe abstraite (interface) décrite dans le fichier d'en-tête. Toute la mise en œuvre est cachée. L'exemple réel peut être trouvé, par exemple, dans mon blog sur la bibliothèque d'optimisation des experts à la volée (en anglais).
Essayez de lancer le code source. Et tout le monde connaît les liens vers le wiki ici
Le lien vers le wiki source n'est-il pas correct ? ;-)
mais ce ne sera pas le cas :-)
Je vous le dis, essayez de le faire, c'est un sacré paquet de codes. La classe instanciable "CFoo : public InterfaceCFoo" doit contenir le champ InterfaceCFoo *privateContext (faire le lien 1:1), le créer et le supprimer via la fabrique, déléguer toutes les méthodes et traduire les références CFoo* this<->privateContext ici et là. Il s'agit de "coucher le soleil à la main", c'est-à-dire de remplacer l'héritage par la délégation, et ce sur place.
Tu as ton propre emballage, l'autre a le sien. La question était de savoir s'il était possible de créer une enveloppe plus pratique que MQL4.
Je ne pense pas qu'il y ait beaucoup de choix à faire...
Personnellement, je n'ai besoin de l'enveloppe que pour le multiplateforme, afin de séparer la logique du conseiller expert des spécificités de telle ou telle plateforme.
Bien sûr, vous devez payer pour la beauté de la POO avec des ressources et beaucoup de temps passé à déboguer. La POO n'a de sens qu'en tant qu'enveloppe de texte pratique ou lorsqu'elle est utilisée de manière minimale pendant l'initialisation de l'exécution... En fait, la POO n'était qu'un truc marketing de Microsoft pour augmenter les coûts des heures de travail des programmeurs et pour stimuler l'achat d'équipements plus avancés. Et ils ne sont pas idiots eux-mêmes et écrivent tous les logiciels en C et en assembleur.
Quel visionnaire vous êtes...
Vous êtes un rêveur, n'est-ce pas ?
Avez-vous quelque chose de significatif à dire sur le sujet de la discussion ?
Une fois de plus, je suis tombé sur...
Dans MQL, il est impossible de séparer "sans détour" l'implémentation des méthodes du prototype et il n'y a aucun moyen de fournir à l'utilisateur (client, testeur, ami/amie) un fichier *.mqh séparé et un fichier *.ex4 séparé (similaire à *.h et .obj/lib/dll en C++).
Une fois de plus, je suis tombé sur...
Dans MQL, il est impossible de séparer "inconditionnellement" l'implémentation des méthodes du prototype et il n'y a aucun moyen de fournir à l'utilisateur (client, testeur, ami/amie) un fichier *.mqh séparé et un fichier *.ex4 séparé (similaire à *.h et .obj/lib/dll en C++).
Pourriez-vous être plus précis sur la tâche à accomplir ? Il semble assez simple de fournir un en-tête avec une fabrique importée qui renvoie des interfaces propres, et toute l'implémentation est entassée dans ex4.
Pouvez-vous être plus précis sur la tâche à accomplir ? Il semble qu'il soit possible de fournir un en-tête avec une fabrique importée, qui renvoie des interfaces propres, et toute l'implémentation est stockée dans ex4.
La tâche est de donner à l'utilisateur la bibliothèque de classes avec le moins d'effort possible, qui consiste en : mqh où les classes sont décrites et ex4 où leur implémentation est stockée.
La seule option à ce jour traîne beaucoup de texte avec des béquilles pour contourner ce goulot d'étranglement.
Si vous connaissez un moyen court et pratique de supprimer l'implémentation de CFoo dans ex4, veuillez partager la recette.
class CFoo {
public:
CFoo(); //default
CFoo(const CFoo orig); // copy
~CFoo();
bool Set(string key,CFoo & link);
CFoo *Get(string key);
bool Clear(string key);
};
la tâche consiste à donner à l'utilisateur une bibliothèque de classes composée de : mqh dans laquelle les classes sont décrites et ex4 dans laquelle elles sont implémentées.
La seule option jusqu'à présent consiste à tirer beaucoup de texte avec des béquilles pour contourner ce goulot d'étranglement.
Si vous connaissez un moyen court et pratique de supprimer l'implémentation de CFoo dans ex4, veuillez partager la recette.
class CFoo {
public:
CFoo(); //default
CFoo(const CFoo orig); // copy
~CFoo();
bool Set(string key,CFoo & link);
CFoo *Get(string key);
bool Clear(string key);
};
Eh bien, j'ai déjà écrit un moyen - pourquoi il ne convient pas ? Vous créez une méthode d'usine, ou fonction, qui renvoie la classe abstraite (interface) décrite dans le fichier d'en-tête. Toute la mise en œuvre est cachée. L'exemple réel peut être trouvé, par exemple, dans mon blog sur la bibliothèque d'optimisation des experts à la volée (en anglais).
Eh bien, j'ai déjà écrit une méthode - qu'y a-t-il de mal à cela ? Vous créez une méthode de fabrique, ou fonction, qui renvoie une classe abstraite (interface) décrite dans le fichier d'en-tête. Toute la mise en œuvre est cachée. L'exemple réel peut être trouvé, par exemple, dans mon blog sur la bibliothèque d'optimisation des experts à la volée (en anglais).
Essayez de jeter le code source. Et tout le monde connaît les liens vers le wiki
Le lien vers le wiki source n'est-il pas correct ? ;-)
Le lien vers le wiki source n'est-il pas correct ? ;-)
mais ce ne sera pas le cas :-)
Je vous le dis, essayez de le faire, c'est un sacré paquet de codes. La classe instanciable "CFoo : public InterfaceCFoo" doit contenir le champ InterfaceCFoo *privateContext (faire le lien 1:1), le créer et le supprimer via la fabrique, déléguer toutes les méthodes et traduire les références CFoo* this<->privateContext ici et là. Il s'agit de "coucher le soleil à la main", c'est-à-dire de remplacer l'héritage par la délégation, et ce sur place.