public class DetectiveCoreExample {
public static void main(String[] args) {
DetectiveCore detectiveCore = new DetectiveCore();
Calculator calculator = new Calculator();
CalculatorProxy calculatorProxy = detectiveCore.createProxy(calculator);
int result = calculatorProxy.add(10, 20);
System.out.println("Result: " + result);
}
}
public class Calculator {
public int add(int a, int b) {
int result = a + b;
return result;
}
}
public class CalculatorProxy {
private Calculator calculator;
public CalculatorProxy(Calculator calculator) {
this.calculator = calculator;
}
public int add(int a, int b) {
System.out.println("Entering add method with arguments: " + a + ", " + b);
int result = calculator.add(a, b);
System.out.println("Exiting add method with result: " + result);
return result;
}
}