Discussão do artigo "Padrões de projeto no MQL5 (Parte 3): Padrões comportamentais 1"

 

Novo artigo Padrões de projeto no MQL5 (Parte 3): Padrões comportamentais 1 foi publicado:

Neste novo artigo da série dedicada a padrões de projeto, exploraremos os padrões comportamentais para entender como criar métodos eficazes de interação entre os objetos criados. Ao projetar esses padrões de comportamento, poderemos entender como desenvolver software reutilizável, expansível e testável.

Neste artigo, vamos examinar o último tipo de padrão de projeto: o comportamental. Já sabemos que os padrões criacionais ajudam a criar um software ou sistema independente através da criação, compilação e representação de objetos, e os padrões estruturais podem ser usados para criar estruturas maiores usando os objetos e classes criados.

Neste artigo, exploraremos os padrões comportamentais, relacionados com a designação e distribuição de responsabilidades entre os objetos. Eles também definem como os objetos podem interagir entre si, e existem muitos padrões desse tipo, como por exemplo:

  • Cadeia de responsabilidade (Chain of Responsibility)
  • Comando (Command)
  • Intérprete (Interpreter)
  • Iterador (Iterator)
  • Mediador (Mediator)
  • Lembrete (Memento)
  • Observador (Observer)
  • Estado (State)
  • Estratégia (Strategy)
  • Método de template (Template Method)
  • Visitante (Visitor)

    Autor: Mohamed Abdelmaaboud

     

    depois de

    você não precisará ler mais nada

     
    Maxim Kuznetsov #:

    após

    você não precisará ler mais nada

    É uma tradução do original em inglês.


    Você pode substituí-lo mentalmente por "handler". Ou simplesmente não leia e escreva seus próprios artigos.

    Artigo sobre o tema https://habr.com/ru/articles/113995/

    Паттерн проектирования «Цепочка обязанностей» / «Chain of Responsibility»
    Паттерн проектирования «Цепочка обязанностей» / «Chain of Responsibility»
    • 2011.02.17
    • habr.com
    Почитать описание других паттернов. Проблема Эффективно и компактно реализовать механизм обработки потока событий/запросов/сообщений в системах с потенциально большим количеством обработчиков. Описание Модель событие/обработчик широко применяется в программных системах из различных областей. В основном, это — графический интерфейс пользователя...
     
    Rashid Umarov #:

    Esta é uma tradução do original em inglês.


    Você pode substituí-lo mentalmente por "handler". Ou simplesmente não leia, mas escreva seus próprios artigos.

    Artigo sobre o tema https://habr.com/ru/articles/113995/

    Não se trata de tradução... não há quase nenhum texto no artigo, por isso há uma tendência estrita em relação ao código.

    o código da captura de tela tem alguma chance de ser aprovado na revisão de código?

    e sobre "escreva seu próprio código" - você está por dentro do assunto, eu sugeri uma série sobre o uso do gcc e do ambiente msys2, mas descobriu-se que não é possível, exceto o MSVC

     
    Maxim Kuznetsov #:

    O que você acha que é a coisa "certa" a fazer?

     
    template<typename T>
    void ConcreteIterator::Next(void)
      {
       m_current++;
       if(!IsDone())
         {
         }
      }


    Para que serveisso? Analisando o material sobre iteradores, há estas opções:

    1)

    template<typename T>
    void ConcreteIterator::Next(void)
      {
       m_current++;
      }

    2)

    template<typename T>
    void ConcreteIterator::Next(void)
      {   
       if(!IsDone())
         {
           m_current++;
         }
      }