feat: add CalcFunctionFactory for calculator operations (#13)
CI / build-and-test (pull_request) Successful in 16s

Callers pick an operation via the CalcOperation enum instead of
instantiating implementation classes directly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Pit Friedrich
2026-07-25 20:09:19 +02:00
parent 01fa52a1fc
commit 55e5cbeb0f
4 changed files with 89 additions and 15 deletions
@@ -1,25 +1,16 @@
package com.example;
import com.example.util.AddFunction;
import com.example.util.CalcFunction;
import com.example.util.DivideFunction;
import com.example.util.MultiplyFunction;
import com.example.util.PowerFunction;
import com.example.util.SubtractFunction;
import com.example.util.CalcFunctionFactory;
import com.example.util.CalcOperation;
public class LoopTestApplication {
static void main() {
System.out.println("============== Calculator =============");
CalcFunction add = new AddFunction();
System.out.println("ADDITION: " + add.calc(2, 5, 6));
CalcFunction subtract = new SubtractFunction();
System.out.println("SUBTRACTION: " + subtract.calc(2, 5, 6));
CalcFunction multiply = new MultiplyFunction();
System.out.println("MULTIPLICATION: " + multiply.calc(2, 5, 6));
CalcFunction divide = new DivideFunction();
System.out.println("DIVISION: " + divide.calc(2, 5, 6));
CalcFunction power = new PowerFunction();
System.out.println("POWER: " + power.calc(2, 5, 6));
for (CalcOperation operation : CalcOperation.values()) {
CalcFunction function = CalcFunctionFactory.create(operation);
System.out.println(operation + ": " + function.calc(2, 5, 6));
}
}
}