У меня есть CLAS называется MyFunctions
, который определяет различные функции func1
, func2
, и т.д. Кроме того, у меня есть класс, который хранит Process
имя функции, присвоенный объекту этого класса:Назначить правильную функцию для объекта класса
Process p1 = new Process();
String fName1 = "func1";
p1.setFunctionName(fName1);
Process p2 = new Process();
String fName2 = "func2";
p2.setFunctionName(fName2);
для того, чтобы запустить правильную работу, я следующее:
MyFunctions f = new MyFunctions();
if (p.getFunctionName() == "func1") {
output = f.func1(inputdata);
} else if (p.getFunctionName() == "func2") {
output = f.func2(inputdata);
}
I'm не уверен, что этот подход является эффективным. Есть ли другой способ решить эту задачу?
Другой вопрос: можно ли сделать что-то подобное в JAVA ?:
String fName = p.getFunctionName();
output = f."+fName+"(input);
функции, к сожалению, не являются объектами в Java. Однако вы можете взглянуть на «Отражение». –
Посмотрите на шаблон стратегии http://stackoverflow.com/questions/91932/how-does-the-strategy-pattern-work. –