类和接口
类是基于 OOP 方法进行程序开发的主要构建块。从广义上讲,“类”是指具有某些共同特征的东西(物、人、公式等)的集合。在 OOP 语境中,这一逻辑得以保留:一个类生成的对象具有一套相同的属性和行为。
在本书的前几章中,我们熟悉了 MQL5 的内置类型,如 double、int 或 string。编译器知道如何存储这些类型的值,以及可以对它们执行哪些操作。但是,这些类型可能不适用于描述任何应用领域。例如,交易员必须处理交易策略、信号过滤器、货币篮子和未平仓头寸组合等实体。每个实体都由一整套相关属性组成,并受特定的处理和一致性规则约束。
对这些对象进行自动操作的程序可能仅由内置类型和简单函数组成,但这样就必须想出一些棘手的方法来存储和链接属性。这时,OOP 技术就派上用场了,该技术为此提供了现成、统一且直观的机制。
OOP 提议将有关如何存储属性、正确填充属性以及允许对特定用户自定义类型的对象执行的操作的所有指令,都编写到一个包含源代码的容器中。它以某种方式将变量和函数结合起来。如果按照能力和相关性从高到低的顺序排列,容器可分为类、结构体和关联。
在 上一章中,我们已经接触过结构体和关联。我们学习的哪些知识也适用于类,但类在 OOP 工具库中提供了更多工具。
类与结构体类似,是对用户定义类型的说明,具有任意的内部存储方法和使用规则。在此基础上,程序可以创建该类的实例,即应被视为复合变量的对象。
由用户定义的所有类型都共享一些基本概念,你可以将其称之为 OOP 理论,这些概念与类的关系最为紧密。包括:
- 抽象
- 封装
- 继承
- 多态性
- 组合(设计)
尽管这些概念看似很复杂,但都是现实世界中非常简单且常见的准则,只是被移植到了编程领域中。我们将从这些概念开始深入学习 OOP。至于用于描述类的语法以及如何创建对象,我们稍后再讨论。