第三章MQL5 中面向对象的编程
在软件开发过程中,当发现内置类型和函数集无法有效满足需求时,这个问题就会凸显出来。构成程序的众多微小实体的管理复杂度会像滚雪球般迅速膨胀,因此需要采用某种技术来提升程序员工作的便利性、生产力和质量。
其中一种技术称为面向对象,已在多种编程语言层面实现,而基于它的编程风格则相应地称为面向对象的编程 (OOP)。MQL5 编程语言同样支持 OOP,因此与 C++ 一样,属于面向对象的语言。
顾名思义,面向对象的技术的核心在于“对象”。本质上,对象是用户定义类型的变量,即程序员使用 MQL5 工具定义的类型。通过创建能够模拟主题领域的类型,可以提高程序的易读性,并简化其编写和维护过程。
MQL5 提供了多种定义新类型的方式,每种方式都有其特定的功能和特点,我们将在后续相关章节中介绍。根据说明方式的不同,用户定义类型分为类、结构体和关联。其中每种类型都可以组合数据和算法,即描述所应用对象的状态和行为。
在本书的第一章,我们曾引用编程先驱 Nicklaus Wirth 的名言:程序是算法和数据结构的共生体。因此,对象本质上是微型程序,每个对象负责处理其自己的任务,这种任务虽然规模不大,但逻辑完整。通过将不同的对象组合成单个系统,您可以构建出复杂度各异的服务或产品。由此可见,OOP 为我们提供了“分而治之”策略的一种全新诠释。
应将 OOP 视为我们在第二章探讨的过程化编程风格的一种更强大且更灵活的替代方案。同时,这两种编程范式并非相互对立:在需要的情况下也可以结合使用。对于很简单的任务,可以不必采用 OOP。
因此,本书的第三部分将重点介绍 OOP 的基础知识以及在 MQL5 中实际应用的可能性。此外,我们还将讨论模板、接口和命名空间。
本书中的例子也可以在 公共项目 中的 \MQL5\Shared Projects\MQL5Book 中找到 |