我是一个相对较新的oop新手,我有一个关于编码某种类型计算的最佳方法的快速问题。我很好奇是否有一个既定的设计模式来解决这类问题。
考虑一个化学流程,其中您将具有温度、压力、流速等属性的材料(a,b)转换为最终产品c。要实现这一点,我需要单位操作D,E,F…每个属性都有自己的属性集(成本、大小等)。我只需要一个方向的信息流,因为闭环可能会增加复杂性(如果不是这样,我真的很感激对闭环如何工作的洞察)。
a、b --> D --> E --> F --> c
最终,我希望能够做一个系统成本分析,我将总结D,E,F的成本属性。
我目前的想法是定义一个"materials“对象,然后让D继承materials,E继承D…C继承F,最后一个“系统”对象继承C来分析系统变量。由于我希望能够将D,E,F替换为G,H,I,也需要有条件继承的代码,其中D必须能够接受输入a,b(基于定义的属性),并且E能够出于同样的原因继承D。我不确定的一件事是,对象c如何能够理解如何汇总所有继承对象的属性(可能基于对象/属性的一些一致的命名约定?)。
很抱歉这个有点冗长的问题--如果你知道AspenPlus,我想用Python语言复制一个更小规模的版本(即没有解算器)。感谢您通读这篇文章!
发布于 2021-02-21 13:25:13
我认为在你的例子中,函数式编程实际上比OOP更适合,因为它归结为对“空白”材料的一组操作过程,从而产生新的材料,实际上是相同的,具有不同的属性。
如果我被限制在OOP上,我会创建不同的类:
用于表示温度/压力等的字符串或枚举( a、b和c)
在这里,对象c将是材质可以计算的MaterialType,而无需继承其他所有内容。很难提出一个准确的具体化,因为你的例子非常抽象,但我认为继承在这里带来的问题比解决方案更多。
https://stackoverflow.com/questions/66287297
复制相似问题