Tôi sắp bắt đầu một dự án mô phỏng / mô hình hóa. Tôi đã biết rằng OOP được sử dụng cho loại dự án này. Tuy nhiên, nghiên cứu Haskell khiến tôi cân nhắc sử dụng mô hình FP để mô hình hóa một hệ thống các thành phần. Hãy để tôi giải thích:
Giả sử tôi có một thành phần loại A, được đặc trưng bởi một tập hợp dữ liệu (tham số như nhiệt độ hoặc áp suất, PDE và một số điều kiện biên, v.v.) và một thành phần của loại B, được đặc trưng bởi một bộ dữ liệu khác nhau (khác nhau hoặc cùng tham số, PDE khác nhau và điều kiện biên). Chúng ta cũng giả sử rằng các hàm / phương thức sẽ được áp dụng trên mỗi thành phần là như nhau (ví dụ phương thức Galerkin). Trạng thái có thể thay đổi của đối tượng sẽ được sử dụng cho các tham số không cố định.
Nếu tôi sử dụng cách tiếp cận OOP, tôi sẽ tạo hai đối tượng sẽ đóng gói dữ liệu của từng loại, các phương thức để giải quyết PDE (kế thừa sẽ được sử dụng ở đây để sử dụng lại mã) và giải pháp cho PDE.
Mặt khác, nếu tôi sử dụng phương pháp FP, mỗi thành phần sẽ được chia thành các phần dữ liệu và các chức năng sẽ tác động lên dữ liệu để có được giải pháp cho PDE. Các tham số không cố định sẽ được truyền dưới dạng các hàm của một thứ khác (ví dụ như thời gian) hoặc được biểu thị bằng một loại biến đổi nào đó (mô phỏng tính biến đổi, v.v.) Cách tiếp cận này có vẻ đơn giản hơn đối với tôi khi cho rằng các hoạt động tuyến tính trên dữ liệu sẽ là tầm thường.
Để kết luận, việc thực hiện phương pháp FP sẽ thực sự đơn giản và dễ quản lý hơn (thêm một loại thành phần hoặc phương pháp mới khác để giải quyết pde) so với phương pháp OOP?
Tôi đến từ nền tảng C ++ / Fortran, cộng với tôi không phải là một lập trình viên chuyên nghiệp, vì vậy hãy sửa cho tôi bất cứ điều gì tôi đã sai.