0

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

我正在做一个小项目来进行有用的电磁计算,但我不知道如何设计它来为未来的使用和其他应用做准备。

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

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

RadialForm 

这是用于身份的,并且该类中的任何内容都不会是组件形式。然后我会有另一堂课叫做

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 类上使用 Gauss 的 Stokes 和 Greens 理论,所以我认为这也应该是另一个类。我有一个想法,应该有某种继承结构,但我不确定决定什么去哪里。

此外,这两个类都将使用“发散”运算符进行操作,以从身份中获取卷曲和结果,并执行许多其他重要的事情。

4

1 回答 1

1

这里的关键词是分解:不要试图将所有内容都放在一个(或在你的情况下 - 只是 2 个)类中,将每个单独的功能都放在单独的类中。这意味着您需要针对向量(点)以及可能针对每种算法的不同类。为了使您的设计更具可重用性,请考虑为类似任务(例如,算法)引入接口。

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

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

于 2012-07-23T15:11:24.627 回答