Programmation OOP vs programmation procédurale - page 7

 
Реter Konow:
Je vois. C'est un argument indiscutable en faveur de la POO. Stupidité du client, manque de temps pour la combattre et manque de volonté d'améliorer l'algorithme de quelqu'un d'autre). Oui, vous avez besoin de la POO dans ce cas. Je suis d'accord.)
Il me semble que vous pouvez vous passer de la POO même dans ce cas.
 
Реter Konow:
Je vois. C'est un argument indiscutable en faveur de la POO. Stupidité du client, manque de temps pour la combattre et manque de volonté d'améliorer l'algorithme de quelqu'un d'autre). Oui, vous avez besoin de la POO dans ce cas. Je suis d'accord).

Pourquoi c'est stupide ? L'approche scientifique normale consiste à avoir tout à portée de main pour vous permettre d'expérimenter.

 
Реter Konow:
Je vois. C'est un argument indiscutable en faveur de la POO. Stupidité du client, manque de temps pour la combattre et manque de volonté d'améliorer l'algorithme de quelqu'un d'autre). Oui, vous avez besoin de la POO dans ce cas. Je suis d'accord).

Simplifier

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
struct str
  {
   int               Tickets;
   string            Symbols;
   int               Types;
   double            Lots;
   double            OpenPrice;
   double            StopLoss;
   double            TakeProfit;
   int               Slippage;
   string            Comments;
   int               Magic;
   datetime          Expiration;
   int               Digitss;
   double            Points;
   double            Profit;
   double            Commission;
   double            Swap;
   double            FullProfit;
  };

str Order[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class COrderMass
  {
protected:
   int               m_slippage;
   string            m_symbol;
   int               m_magic;
public:
   void              SetSymbol(string aSymbol)    {m_symbol   = aSymbol;}
   void              SetSlippage(int aSlippage)   {m_slippage = aSlippage;}
   void              SetMagic(int aMagic)         {m_magic    = aMagic;}

                     COrderMass(void);
                     COrderMass(string aSymbol,int aMagic,int aSlippage);
   void              UpdateOrdersMass();
  };
//+------------------------------------------------------------------+
COrderMass :: COrderMass(string aSymbol,int aMagic,int aSlippage):m_symbol(aSymbol),m_magic(aMagic),m_slippage(aSlippage)
  {

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void COrderMass :: UpdateOrdersMass()
  {
   int z=0;
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if(OrderMagicNumber()==m_magic || m_magic==-1)
            if(OrderSymbol()==m_symbol || m_symbol=="")
              {
               ArrayResize(Order,z+1,1000);
               Order[z].Tickets       = OrderTicket();
               Order[z].Symbols       = OrderSymbol();
               Order[z].Types         = OrderType();
               Order[z].Lots          = OrderLots();
               Order[z].OpenPrice     = OrderOpenPrice();
               Order[z].StopLoss      = OrderStopLoss();
               Order[z].TakeProfit    = OrderTakeProfit();
               Order[z].Slippage      = m_slippage;
               Order[z].Comments      = OrderComment();
               Order[z].Magic         = OrderMagicNumber();
               Order[z].Expiration    = OrderExpiration();
               Order[z].Digitss       = (int)SymbolInfoInteger(Order[z].Symbols,SYMBOL_DIGITS);
               Order[z].Points        = SymbolInfoDouble(Order[z].Symbols,SYMBOL_POINT);
               Order[z].Profit        = OrderProfit();
               Order[z].Commission    = OrderCommission();
               Order[z].Swap          = OrderSwap();
               Order[z].FullProfit    = Order[z].Profit+Order[z].Commission+Order[z].Swap;
               z++;
              }
  }
//+------------------------------------------------------------------+
 

Messieurs les argumentateurs, disons-le ainsi, si vous ne comprenez pas la POO, ne savez pas, argumentons alors non pas la programmation procédurale contre la POO, mais la programmation procédurale avec des pointeurs vers des fonctions contre la programmation procédurale sans pointeurs vers des fonctions.

 
Vladimir Pastushak:

Simplifier


ou plutôt le résoudre avec des fonctions

 

La POO est un progrès. Il faut juste l'accepter et commencer à l'étudier. Cela peut s'avérer utile.

Классы в C++ — урок 10
Классы в C++ — урок 10
  • votes : 74
  • 2012.09.16
  • code-live.ru
Весь реальный мир состоит из объектов. Города состоят из районов, в каждом районе есть свои названия улиц, на каждой улице находятся жилые дома, которые также состоят из объектов. Практически любой материальный предмет можно представить в виде совокупности объектов, из которых он состоит. Допустим, что нам нужно написать программу для учета...
 
Vladimir Pastushak:

Simplifier


Ce n'est peut-être pas une approche rationnelle que de charger tous les ordres ouverts avec tous leurs paramètres dans un tableau.

 
Dmitry Fedoseev:

Pourquoi c'est stupide ? L'approche scientifique normale consiste à avoir tout à portée de main pour pouvoir expérimenter.

La stupidité ou l'approche normale est un sentiment subjectif. Pour moi, c'est de la pure stupidité. Mais peut-être que je n'ai pas tout à fait raison non plus. Je sais que je ne ferais pas de suivi de cette manière.
 
Dmitry Fedoseev:

Messieurs les argumentateurs, disons-le ainsi, si vous ne comprenez pas la POO, ne savez pas, argumentons alors non pas la programmation procédurale contre la POO, mais la programmation procédurale avec des pointeurs vers des fonctions contre la programmation procédurale sans pointeurs vers des fonctions.

Discutons de la nécessité de la programmation structurée, c'est-à-dire de la division d'un programme en fonctions.
 
Реter Konow:
La stupidité ou la normalité est un sentiment subjectif. Pour moi, c'est de la pure stupidité. Mais peut-être que je n'ai pas tout à fait raison non plus. Je sais que je ne ferais pas le suivi de cette manière.

Lisez ce post ici et réagissez-yhttps://www.mql5.com/ru/forum/213378/page7#comment_5596988.