記事「MVCデザインパターンとその可能なアプリケーション(第2部): 3つのコンポーネント間の相互作用の図」についてのディスカッション

 

新しい記事「MVCデザインパターンとその可能なアプリケーション(第2部): 3つのコンポーネント間の相互作用の図」はパブリッシュされました:

本稿は、前の記事で説明したMQLプログラムのMVCパターンのトピックの続きです。この記事では、パターンの3つのコンポーネント間の可能な相互作用の図を検討します。

メイン指標ファイルのOnChartEventハンドラで呼び出される結果のControllerメソッドは、次のようになります。

void CController::ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) {

      switch (id) {
         case CHARTEVENT_OBJECT_CLICK:
            if (StringCompare(sparam, pBtn.GetName()) == 0) {
               if (pView.GetViewType() == LINE)
                  pView.SetNewViewType(HISTO);
               else pView.SetNewViewType(LINE);   
            }
            break;      
        default:
            break;    
      }//switch (id)
}


このメソッドは、マウスが正しいオブジェクトをクリックしたかどうかを確認してから、ビューの表示モードを切り替えました。

関連する変更を追加するのは非常に簡単で迅速でした。1年後に同様の変更を実行するとしても、それほど長くはかからないでしょう。開発者はスクリプトの構造と各コンポーネントで行なったことを覚えているため、ドキュメントを紛失したり、プロジェクトの原則を忘れたりした場合でも、プロジェクトの保守は簡単です。

作者: Andrei Novichkov

 
アンドレイ、記事をありがとう。

あなたのプロジェクトにいくつかのアイデアを加えたいと思います。

1.入力パラメータに符号なし型を使用すると、ターミナルは単にユーザーが負の値を入力することを許可しません、例えばuint。

2.そうしないと、ストラテジーテスターを使うときに、同じものがたくさん実行されることになります。

3.3. データと変数の保存に辞書を使うことをお勧めします。

4.例えば、インジケータなどを作成するために、端末の標準クラスを使用します。自転車を作らないでください、ほとんどあなたのコードは経験豊富な開発者によって使用されることはありませんが、標準クラスを使用することで、非常にスキルを向上させることができます。

5.5.許可されている場合は、仮想メソッドを使用し、あなたのクラスを使用し、そのクラスを継承する他の開発者の手を解き、あなたのクラスを直接変更しないようにする。
 
コメントありがとう。私はこの記事(私のすべての記事)を、反応や独自の創造を促すものとして紹介している。決してドグマではない。だからこそ、あなたのコメントはとても参考になるし、そこから多くの有益なことを学ぶことができる。
 

携帯電話用メタトレーダー5の水平ビジュアライゼーションには、下側のバーがありません。クォート、チャート、トレード、ヒストリー、メッセージ "を表示するバーは、水平方向の画面からはアクセスできません。Quotes/Chart/Trade/History/Messages "バーにアクセスするには、スマートフォン📲を上に向ける必要があります。

私が言っていることは動画で確認できる。