Вопрос

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

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

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

Минусы рекордного подхода:

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

  1. Математический пакет SDL - не уверен, что вам придется за это платить
  2. Джедайская математика - похоже, проект заброшен, но проверить его все равно стоит.Если вы не делаете ничего сумасшедшего, это, вероятно, сработает для вас.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top