文章 "MVC 设计范式及其应用(第 2 部分):三个组件之间相互作用示意图"

 

新文章 MVC 设计范式及其应用(第 2 部分):三个组件之间相互作用示意图已发布:

本文是前一篇文章中所讨论主题的延续和完善:MQL 程序中的 MVC 范式。 在本文中,我们将研究范式的三个组件之间可能的相互作用的示意图。

在指标主文件的 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)
}


该方法检查鼠标是否在正确的对象上单击,然后切换视图中的显示模式:

加入相关更改非常简单、快速。 假使我们在一年后必须进行类似的改变,也不会花太多时间。 开发者会记住脚本的结构,以及在每个组件中执行的操作。 因此,即使文档丢失、或忘记了项目原则,项目也很容易维护。

作者:Andrei Novichkov

 
安德烈,谢谢你的文章。

你想为你的项目做什么贡献...

1.你可以在输入参数中使用无符号类型,那么终端就不允许用户输入负值,例如uint。

2.我不建议将输入参数重新定义为默认值,否则,当你使用策略测试器时,你会得到很多相同的运行结果,不仅如此,第二点是它是隐藏的,用户不会意识到他犯了一个错误,最好是告诉错误并停止工作。

3.我建议使用字典来存储数据和变量,在你的情况下,他们将完美地适合,即使在大型项目中,代码也可以时常减少。

4.使用终端的标准类,例如创建指标等,不要做自行车,你的代码不太可能被有经验的开发者使用,但你会通过使用标准类提高你的技能。

5.尽可能地使用虚拟方法,以解放其他将使用你的类并继承你的类的开发者的手,使他们不直接修改你的类。
 
谢谢你的评论。我把这篇文章(我所有的文章)作为鼓励反应、独立创造的东西来介绍。决不是作为一种教条。因此,你的评论是非常有意义的,你可以从中吸取很多有用的信息。