package com.example.util; public final class CalcFunctionFactory { private CalcFunctionFactory() { } public static CalcFunction create(CalcOperation operation) { if (operation == null) { throw new IllegalArgumentException("Operation must not be null"); } return switch (operation) { case ADD -> new AddFunction(); case SUBTRACT -> new SubtractFunction(); case MULTIPLY -> new MultiplyFunction(); case DIVIDE -> new DivideFunction(); case POWER -> new PowerFunction(); }; } }