Мне нравится использовать класс Struts DispatchAction, потому что я могу определить более одного метода в классе действия (метод execute). За кулисами все, что он делает, - это находит метод, который он должен выполнить (передается в форме или передается в URL), находит метод с использованием отражения, вызывает его с правильным набором аргументов (метод должен иметь то же самое подпись метода «execute»), получает результат и передает его. DispatchAction просто переопределяет метод execute класса Action для реализации этого поведения.
При этом в вашем случае я бы определил только один класс - скажем, «DispatchStoreAction», и я бы определил два метода, вероятно, «подготовить» и «сохранить». Мне нравится делать это таким образом, потому что у меня все еще есть хорошая абстракция класса (и вы не помещаете «действие», которое вы выполняете в имя класса), потому что ваши методы могут четко определить, что они должны делать, а также потому что, по определению, классы действий имеют тенденцию быть маленькими. Вероятно, у вас где-то будет определен «StoreLogic» или «StoreBusiness», и этот класс будет обрабатывать бизнес-логику, связанную с сущностью, над которой вы работаете. Лично я думаю, что было бы хорошо, если у вас есть один «StoreAction», а затем один «StoreLogic», один «UserAction» и один «UserLogic» и т. Д. - отношения не должны быть 1 к 1, но я думаю, что это помогает поддерживать код.
Проверьте исходный код класса DispatchAction, чтобы узнать, как это сделать, но реализация должна быть тривиальной.