Lập trình hướng đối tượng trong MQL5
Trong quá trình phát triển phần mềm, vấn đề về việc các kiểu tích hợp sẵn và tập hợp hàm không đủ để thực hiện hiệu quả các yêu cầu trở nên rõ ràng tại một thời điểm nào đó. Độ phức tạp trong việc quản lý nhiều thực thể nhỏ tạo nên chương trình tăng lên như một quả cầu tuyết và đòi hỏi sử dụng một loại công nghệ nào đó có khả năng cải thiện sự tiện lợi, năng suất và chất lượng công việc của lập trình viên.
Một trong những công nghệ này, được triển khai ở cấp độ của nhiều ngôn ngữ lập trình, được gọi là Hướng đối tượng, và phong cách lập trình dựa trên nó được gọi là Lập trình hướng đối tượng (OOP). Ngôn ngữ lập trình MQL5 cũng hỗ trợ nó và do đó thuộc về gia đình các ngôn ngữ hướng đối tượng, giống như C++.
Từ tên của công nghệ, có thể kết luận rằng nó được tổ chức xoay quanh các đối tượng. Về cơ bản, một đối tượng là một biến của kiểu do người dùng định nghĩa, tức là một kiểu được lập trình viên xác định bằng các công cụ của MQL5. Cơ hội tạo ra các kiểu mô hình hóa lĩnh vực chủ đề giúp chương trình dễ hiểu hơn và đơn giản hóa việc viết cũng như bảo trì chúng.
Trong MQL5, có một số phương pháp để định nghĩa một kiểu mới, và mỗi phương pháp được đặc trưng bởi một số tính năng mà chúng ta sẽ mô tả trong các phần liên quan. Tùy thuộc vào phương pháp mô tả, các kiểu do người dùng định nghĩa được chia thành lớp, cấu trúc và liên kết. Mỗi loại trong số chúng có thể kết hợp dữ liệu và thuật toán, tức là mô tả trạng thái và hành vi của các đối tượng ứng dụng.
Trong Phần 1 của cuốn sách, chúng ta đã đề cập đến câu trích dẫn từ một trong những cha đẻ của lập trình, Nicklaus Wirth, rằng các chương trình là sự cộng sinh của thuật toán và cấu trúc dữ liệu. Vì vậy, các đối tượng về cơ bản là những chương trình nhỏ — mỗi đối tượng chịu trách nhiệm giải quyết nhiệm vụ riêng của nó, dù nhỏ nhưng hoàn chỉnh về mặt logic. Bằng cách ghép các đối tượng thành một hệ thống duy nhất, bạn có thể xây dựng một dịch vụ hoặc sản phẩm với độ phức tạp bất kỳ. Như vậy, với OOP, chúng ta có một cách diễn giải mới về nguyên tắc "chia để trị".
OOP nên được coi là một lựa chọn mạnh mẽ và linh hoạt hơn so với phong cách lập trình thủ tục mà chúng ta đã khám phá trong Phần Hai. Đồng thời, không nên đối lập hai cách tiếp cận này: nếu cần, chúng có thể được kết hợp, và trong các nhiệm vụ đơn giản nhất, OOP có thể được bỏ qua.
Vì vậy, trong Phần thứ ba của cuốn sách này, chúng ta sẽ nghiên cứu các nguyên tắc cơ bản của OOP và các khả năng triển khai thực tế của chúng trong MQL5. Ngoài ra, chúng ta sẽ nói về mẫu (templates), giao diện (interfaces) và không gian tên (namespaces).
- MQL5 Programming for Traders — Source Codes from the Book. Part 3
- Các ví dụ từ cuốn sách cũng có sẵn trong dự án cộng đồng
\MQL5\Shared Projects\MQL5Book