Возникли проблемы с созданием нового экземпляра Struts Action из метода execute ()? - PullRequest
0 голосов
/ 14 июля 2011

Я использую Struts 1.1 (не заводите меня), и обновление сейчас не вариант. К сожалению, единый подход к единственному действию сводит меня с ума и делает действие довольно сложным, так как мы не можем использовать переменные экземпляра и тому подобное, то есть все необходимые объекты должны быть переданы всем методам в качестве параметров. Я предпочитаю использовать переменные экземпляра, поэтому я хотел бы создать новый экземпляр Action для каждого запроса из метода execute действия, например:

public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    return (new SaveUserDataAction()).instanceExecute(mapping, form, request, response);
}

public ActionForward instanceExecute (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    // all normal execute stuff goes here
}

Это отлично работает, но мне интересно, если вы, ребята, можете подумать о каких-либо проблем с этим подходом. Я знаю, что это потребует нескольких дополнительных циклов ЦП из-за создания дополнительного объекта, но мудрость в наши дни заключается в том, что для каждого запроса создается тонна создания объекта, и еще один остается незамеченным; не говоря уже о том, что стоит улучшить читаемость и удобство обслуживания. Есть ли другие недостатки, которые являются более серьезными?

Кроме того, есть ли более простой способ сделать это, чем этот полукруглый подход? Возможно, поддерживаемый Struts подход?

1 Ответ

1 голос
/ 14 июля 2011

Действия Struts 1.1 не предназначены для выполнения бизнес-логики:

В приложении Struts большая часть бизнес-логики может быть представлена ​​с помощью JavaBeans.Действие может вызывать свойства JavaBean, не зная, как оно на самом деле работает.Это инкапсулирует бизнес-логику, так что Action может сосредоточиться на обработке ошибок и на том, куда направлять управление.

Проблема не в том, что вы создаете дополнительный экземпляр , а в том, что вы создаете дополнительный экземпляр действия вместо некоторого помощника/dao.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...