Реализация векторного класса в Delphi? - PullRequest
3 голосов
/ 05 января 2010

Как бы вы занялись созданием векторного класса в Delphi? Я бы предпочел поместить все математические вещи в DLL. Должен ли я использовать запись или класс, реализующий интерфейс?

Плюсы рекордного подхода:

  • Быстрый и легкий
  • Тип значения
  • Перегрузка оператора

Минусы записи подхода:

  • Реализация не может быть скрыта в DLL (без наследования, поэтому абстрактный базовый класс для интерфейса DLL невозможен)
  • Проблемы с записями как свойствами классов (Class.VectorProp.X := 42)

Что вы думаете?

Ответы [ 2 ]

3 голосов
/ 05 января 2010

Это зависит от ваших приоритетов.

Если производительность является главным приоритетом, переходите к записям. Но если реализация скрывается сверху, переходите на интерфейсы.

Но почему бы не использовать пакет, чтобы вы могли использовать статическое и динамическое связывание, если хотите. Конечно, DLL предпочтительнее, если код будет использоваться другими языками, лучше использовать DLL.

Нижняя строка, требования и их относительный приоритет определяют реализацию.

2 голосов
/ 05 января 2010

Я не использовал ни одного из них, но они могли бы сэкономить вам время.

  1. SDL MathPack - не уверен, придется ли вам платить за него
  2. Jedi Math - похоже, проект был заброшен, но вы все равно должны его проверить. Если вы не делаете ничего сумасшедшего, это, вероятно, сработает для вас.
...