Delphi 中矢量类的实现?

3
你如何在Delphi中创建一个向量类?我倾向于将所有与数学相关的内容放入DLL中。我应该使用记录或实现接口的类?
记录方法的优点:
- 快速轻便 - 值类型 - 运算符重载
记录方法的缺点:
- 实现无法隐藏在DLL中(没有继承,因此无法为DLL接口创建抽象基类) - 在类的属性中使用记录时存在问题(Class.VectorProp.X := 42
你怎么看?

3
只是出于好奇,你为什么想把数学相关的东西放在 DLL 中? - Svein Bringsli
2个回答

3

这取决于您的优先事项。

如果性能是首要任务,那么使用记录。但如果实现隐藏是首要任务,则使用接口。

但为什么不使用包,这样您可以根据需要同时使用静态和动态链接。当然,如果代码将被其他语言使用,则DLL是更好的选择。

总之,要求及其相对优先级决定了实现方式。


+1 已接受。我认为没有“正确”的方法。我需要考虑我的优先事项。谢谢! - jpfollenius
正确的方法取决于您的要求。有时它们是相互冲突的,因此您必须具备创造力。 - Toon Krijthe

2
我没有使用过这两个工具,但它们可能会节省您一些时间。
  1. SDL MathPack - 不确定是否需要付费。
  2. Jedi Math - 看起来这个项目已经被放弃了,但您仍然应该去看看。如果您不做任何疯狂的事情,它可能适合您。

谢谢,尽管这不是我的问题的答案。 - jpfollenius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接