[英]Python OOP Design Pattern for Calculation Flows
我对 oop 比较陌生,并且有一个关于编写某种类型计算的最佳方法的快速问题。 我很好奇是否存在解决此类问题的既定设计模式。
考虑一个化学工艺流程,您将具有温度、压力、流速等属性的材料 (a,b) 转换为最终产品 c。 要到达那里,我需要单元操作 D、E、F...,每个操作都有自己的一组属性(成本、大小等)。 我只需要一个方向的信息流,因为闭环可能会增加复杂性(如果不是,我真的很感激能深入了解闭环是如何工作的)。
a,b --> D --> E --> F --> c
最终我希望能够进行系统成本分析,我将总结 D、E、F 的成本属性。
My current thought process to approach this is to define a "materials" object, then have D inherit materials, E inherit D... c inherit F then lastly a "system" object inherit c to analyze the system variables. 由于我希望能够将 D、E、F 换成 G、H、I,因此还需要有条件 inheritance 的代码,其中 D 必须能够接受输入 a、b(基于定义的属性)和出于同样的原因,E 能够继承 D。 我不确定的一件事是 object c 将如何理解如何总结所有继承对象的属性(可能基于对象/属性的一些一致命名约定?)。
抱歉这个有点冗长的问题 - 如果您知道 AspenPlus,我希望在 Python 中复制一个较小规模的版本(即没有求解器)。 感谢您阅读本文!
我会争辩说,在您的情况下,函数式编程实际上比 OOP 更适合,因为它归结为“空白”材料的一组操作过程,它产生了一种新材料,实际上具有不同的属性。
如果我被限制在 OOP 我会创建不同的类:
这里 object c 将是 Material 可以计算的 MaterialType,无需继承其他所有内容。 由于您的示例非常抽象,因此很难提出准确的具体化,但我认为 inheritance 带来的问题多于解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.