Давайте представим, что мы должны вызывать один метод из разных классов по определению, поступающий во время выполнения.Например, мы получаем JSON следующим образом:
{"calculator": "MyClass1", "parameter1": 1.0, "parameter2": 2.0, ... }
MyClass1 и другие классы либо расширяют некоторый базовый класс, либо реализуют некоторый интерфейс (просто чтобы иметь возможность перечислять их во время выполнения).Мы должны создать объект, передать параметры объекту и вызвать метод calc ().
Я могу придумать два способа сделать это:
switch (calculatorString) {case "MyClass1": calculator = new MyClass1 ();...
с использованием Java Reflection
Первый способ действительно глуп, потому что код должен обновляться каждый раз, когда новый класс калькулятора добавляется впроект.Второй способ немного лучше, но среда IDE не может отловить ошибки типов, которые мы допускаем при создании объектов и вызове метода.
Есть ли другие способы сделать это (возможно, лучше)?