Здравствуйте, Leeif, Вы писали:
L>требуется реализовать вызов соответсвующих функций (имена пусть совпадают с ключем карты)
L>и параметры функции ArrayList, но требуется это организовать без использывания case структур
L>или каскадов if. Мне подсказали что это можно реализовать с помощью комманд паттерн. а как иммено?
Как-то так.
public interface Action
{
void doAction(List args)
}
public class DoSomethingAction implements Action
{
void doAction(List args)
{
//Do something
}
}
public class ActionBag
{
static Map<String, Action> actionMap = new HashMap<String, Action>();
static
{
actionMap.put("Action Key", new DoSomethingAction());
}
public void doAction(String actionKey)
{
Action action = actionMap.get(actionKey);
action.doAction(getArguments(actionKey));
}
}
Только вот Action/ActionBag практически во всех нужных Framework-ах уже существует. Редко приходится самому писать.