Interface Function

  • All Known Implementing Classes:
    LogFunction, MathFunction, TrigonometricalFunction

    public interface Function
    Интерфейс математической функции (паттерн Strategy).

    Реализации этого интерфейса позволяют добавлять кастомные функции в систему вычисления выражений без изменения кода StackEvaluator.

    Требования к реализации:

    • Должен быть потокобезопасным и не хранить изменяемое состояние (stateless)
    • Метод apply(double...) должен проверять количество и валидность аргументов
    • При некорректных аргументах выбрасывать ExpressionException
    See Also:
    FunctionRegistry
    • Method Detail

      • apply

        double apply​(double... args)
              throws ExpressionException
        Вычисляет значение функции.
        Parameters:
        args - аргументы функции (varargs для поддержки унарных/бинарных/многоаргументных функций)
        Returns:
        результат вычисления
        Throws:
        ExpressionException - если количество аргументов не соответствует ожидаемому, или значения аргументов выходят за допустимый диапазон