gpt4 book ai didi

java - 我的电磁 java 应用程序的明智的 OO 设计? (有点数学)

转载 作者:行者123 更新时间:2023-12-01 15:15:57 25 4
gpt4 key购买 nike

对于那些不知道这类事情的人。这基本上是我在这里搞乱的 3D vector 关系......

我正在制作一个小项目来进行有用的电磁计算,但我不确定如何设计它来为 future 的使用和其他应用做好准备。

最终我会得到一些图形输出并制作一个 GUI,但目前我只希望它是一个基于终端的程序。

目前我正在考虑开设一个名为

的类(class)
RadialForm 

这是用于身份的,并且该类中没有任何内容是组件形式的。然后我将有另一个名为

的类(class)
ComponentForm

它将完成坐标转换的所有计算,主要方法是

setRectangular(i j k)
setCylindrical(i j k)
setSpherical(i j k)
computeCurl(i j k) //not sure if these last two should be in another class so I gave them arguments
computeDiv(i j k)

然后,我希望能够在 RadialFrom 和 ComponentForm 类上使用高斯的斯托克斯和格林理论,所以我认为这也应该是另一个类。我有一个想法,应该有某种继承结构,但我不太有信心决定什么去哪里。

此外,这两个类都将使用“散度”运算符进行操作,以获取旋度和恒等式的结果,并执行许多其他重要的操作。

最佳答案

这里的关键词是分解:不要试图将所有内容都放入一个(或者在您的情况下,仅2个)类中,而是将每个单独的功能 block 放入单独的类中。这意味着您需要对 vector (点)进行不同的类,并且可能对每个算法都需要不同的类。为了使您的设计更具可重用性,请考虑引入类似任务的接口(interface)(例如,算法)。

OOP 在领域对象建模及其关系方面也很强大。因此,请尝试放下您可能需要的域中的所有对象。但请注意,有时(尤其是在科学程序中)您可能需要额外的类来操作现有的类。这里你的 ComponentForm 就是一个很好的例子。

关于继承,一般规则是:如果您不确定不要使用它。在大多数情况下,接口(interface)或委托(delegate)(取决于您的需求)是更好的选择。

关于java - 我的电磁 java 应用程序的明智的 OO 设计? (有点数学),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11614809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com