我将要开始一个模拟/建模项目。我已经知道OOP用于此类项目。但是,研究Haskell使我考虑使用FP范例对组件系统进行建模。让我详细说明:
假设我有一个类型A的组件,其特征是一组数据(如温度或压力,PDE和某些边界条件等参数),以及一个类型B的组件,其特征是一组不同的数据(不同或相同的参数,不同的PDE和边界条件)。我们还假设将要应用于每个组件的函数/方法是相同的(例如,Galerkin方法)。对象的可变状态将用于非恒定参数。
如果要使用OOP方法,我将创建两个对象,这些对象将封装每种类型的数据,解决PDE的方法(继承将在此处用于代码重用)和PDE的解决方案。
另一方面,如果我要使用FP方法,则每个组件都将分解为数据部分和对数据起作用的功能,以获得PDE的解决方案。非常数参数将作为其他函数(例如时间)传递或由某种可变性(可变性的仿真等)表示。假设对数据进行线性运算是微不足道的,这种方法对我来说似乎更简单。
总之,与OOP相比,实施FP方法实际上是否更简单,更易于管理(添加不同类型的组件或新方法来解决pde)?
我来自C ++ / Fortran,而且我不是专业程序员,所以请在出现任何错误的地方进行纠正。