Re: Помогите с комманд паттерн
От: Blazkowicz Россия  
Дата: 20.07.06 10:51
Оценка:
Здравствуйте, 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-ах уже существует. Редко приходится самому писать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.