Skip to content

MQL5 中的面向对象编程

在软件开发过程的某个阶段,内置数据类型和函数集不足以有效满足需求的问题会日益凸显。管理构成程序的众多小实体的复杂性会像滚雪球一样不断增加,这就需要使用某种技术来提高程序员工作的便利性、效率和质量。

在许多编程语言层面实现的这类技术中,有一种被称为 “面向对象”,而基于此的编程风格则相应地被称为 “面向对象编程(OOP)”。MQL5 编程语言也支持面向对象编程,因此它和 C++ 一样,属于面向对象语言家族。

从这项技术的名称可以推断出,它是围绕对象来组织的。从本质上讲,对象是用户自定义类型的变量,也就是程序员使用 MQL5 工具定义的一种类型。能够创建对特定领域进行建模的类型,这使得程序更易于理解,并简化了程序的编写和维护。

在 MQL5 中,有几种定义新类型的方法,每种方法都有其特点,我们将在相关章节中进行描述。根据描述方法的不同,用户自定义类型可分为类、结构体和关联类型。它们中的每一种都可以将数据和算法结合起来,即描述应用对象的状态和行为。

在本书的第一部分,我们引用了编程领域先驱之一尼克劳斯·维尔特(Nicklaus Wirth)的一句话:程序是算法和数据结构的共生体。因此,对象本质上就是小型程序 —— 每个对象都负责解决其自身虽小但在逻辑上完整的任务。通过将对象组合成一个单一的系统,你可以构建出任意复杂程度的服务或产品。这样一来,借助面向对象编程,我们对 “分而治之” 原则有了新的诠释。

应该把面向对象编程视为我们在第二部分探讨的过程式编程风格的一种更强大、更灵活的替代方式。同时,不应将这两种方法对立起来:如有必要,它们可以结合使用,而且在最简单的任务中,也可以不使用面向对象编程。

因此,在本书的第三部分,我们将学习面向对象编程的基础知识,以及在 MQL5 中实际实现这些知识的可能性。此外,我们还将讨论模板、接口和命名空间。