Sự khác nhau giữa Functional Programming và OOP

Giới thiệu chung

Functional Programming

Functional Programming một phương pháp lập trình dựa trên các hàm toán học (function), tránh việc thay đổi giá trị của dữ liệu. Nó có nhiều lợi ích như : các khối xử lý độc lập dễ tái sử dụng, thuận lợi cho việc thay đổi logic hoặc tìm lỗi chương trình.

Functional Programming dựa trên các khái niệm :

  1. High Order Functions (HOF)
  2. Pure functions
  3. Recursion
  4. Strict and Non-strict Evaluation
  5. Type systems
  6. Referential Transparency

Với Functional Programming, hàm là đối tượng thao tác chính

OOP (Object Oriented Programming)

OOP là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code trừu tượng hóa các đối tượng. Đối tượng là những sự vật, sự việc mà nó có những tính chất, đặc tính, hành động giống nhau và ta gom góp lại thành đối tượng giống trong thực tế cuộc sống. Khi lập trình OOP, chúng ta sẽ định nghĩa các lớp (class) để gom (mô hình) các đối tượng thực tế.

OOP dựa trên các tính năng chính:

  1. Abstraction
  2. Inheritance
  3. Polymorphism
  4. Encapsulation

So sánh FP với OOP

  1. FP sử dụng mô hình lập trình phi trạng thái,OOP sử dụng mô hình lập trình trạng thái.
  2. Với FP,function là đơn vị thao tác chính,với OOP,đó là object.
  3. FP hỗ trợ trừu tượng hóa dữ liệu(data) và hành vi(behavior).OOP chỉ hỗ trợ trừu tượng hóa dữ liệu.
  4. FP cung cấp hiệu suất cao trong việc xử lý dữ liệu lớn tốt hơn OOP.
  5. FP không hỗ trợ cấu trúc điều khiển(thay vào đó là pattern-matching),OOP hỗ trợ cấu trúc điều khiển,chẳng hạn như if-else ,switch..
  6. Với FP,trọng tâm chính là “what are we doing”-“những gì chúng ta đang làm”, với OOP, đó là “how are we doing”-”chúng ta đang làm như thế nào”.
  7. Trong FP, trạng thái(state) không tồn tại.Trong OOP,state có tồn tại.
  8. Trong FP, function không có hiệu ứng phụ (side effect),không tạo ra bất kì tác động nào bên ngoài function (tính thuần khiết). Trong OOP, một phương thức (method) có thể có side effect và ảnh hưởng đến bộ xử lý ( tính mutable).
  9. FP được sử dụng để thực hiện nhiều hành động khác nhau mà data được cố định (val và immutable). OOP được sử dụng để thực hiện một số hoạt động có hành vi chung với các biến thể khác nhau.(object và mutable).

Tài liệu tham khảo

  • https://www.educba.com/functional-programming-vs-oop/
  • https://septeni-original.atlassian.net/wiki/spaces/ST/pages/12181034/Object-oriented+programming+va+Functional+Programming.

 

 

Add a Comment

Scroll Up