Zaraz rozpocznę projekt symulacji / modelowania. Wiem już, że OOP służy do tego rodzaju projektów. Jednak badanie Haskella skłoniło mnie do rozważenia zastosowania paradygmatu FP do modelowania układu komponentów. Pozwól mi rozwinąć:
Załóżmy, że mam komponent typu A, charakteryzujący się zestawem danych (parametr taki jak temperatura lub ciśnienie, PDE i niektóre warunki brzegowe itp.) Oraz komponent typu B, charakteryzujący się innym zestawem danych (różnym lub ten sam parametr, różne PDE i warunki brzegowe). Załóżmy również, że funkcje / metody, które zostaną zastosowane do każdego komponentu, są takie same (na przykład metoda Galerkina). Zmienny stan obiektu zostałby zastosowany do parametrów niestałych.
Gdybym miał zastosować podejście OOP, stworzyłbym dwa obiekty, które enkapsulowałyby dane każdego typu, metody rozwiązywania PDE (dziedziczenie byłoby tu użyte do ponownego użycia kodu) i rozwiązanie PDE.
Z drugiej strony, gdybym miał zastosować podejście FP, każdy komponent byłby podzielony na części danych i funkcje, które działałyby na dane w celu uzyskania rozwiązania dla PDE. Parametry niestałe byłyby przekazywane jako funkcje czegoś innego (na przykład czas) lub wyrażane przez pewnego rodzaju zmienność (emulacja zmienności itp.) To podejście wydaje mi się prostsze, zakładając, że liniowe operacje na danych byłyby trywialne.
Podsumowując, czy wdrożenie podejścia FP byłoby faktycznie prostsze i łatwiejsze w zarządzaniu (dodaj inny typ komponentu lub nową metodę rozwiązania pde) w porównaniu do OOP?
Pochodzę z środowisk C ++ / Fortran, a ponadto nie jestem profesjonalnym programistą, więc popraw mnie na wszystko, co popełniłem źle.