Bạn không nhất thiết phải lựa chọn giữa hai mô hình. Bạn có thể viết phần mềm với kiến trúc OO bằng nhiều khái niệm chức năng. FP và OOP là trực giao trong tự nhiên .
Lấy ví dụ C #. Bạn có thể nói nó chủ yếu là OOP, nhưng có nhiều khái niệm và cấu trúc FP. Nếu bạn xem xét Linq , các cấu trúc quan trọng nhất cho phép Linq tồn tại có bản chất là chức năng: biểu thức lambda .
Một ví dụ khác, F #. Bạn có thể nói nó chủ yếu là FP, nhưng có nhiều khái niệm và cấu trúc OOP có sẵn. Bạn có thể định nghĩa các lớp, lớp trừu tượng, giao diện, đối phó với sự kế thừa. Bạn thậm chí có thể sử dụng khả năng biến đổi khi nó làm cho mã của bạn rõ ràng hơn hoặc khi nó tăng hiệu suất đáng kể.
Nhiều ngôn ngữ hiện đại là đa mô hình.
Đề nghị đọc
Khi tôi ở trong cùng một chiếc thuyền (nền OOP, học FP), tôi muốn gợi ý cho bạn một số bài đọc tôi thực sự đánh giá cao: