Sustituir la lógica de negocio de un mandato de tarea existente

Para sustituir la lógica de negocio de un mandato de tarea existente, debe crear una nueva clase de implementación para el mandato de tarea. Esta nueva clase de implementación debe ampliarse a partir del mandato de tarea existente pero no debe implementar la interfaz existente. Además, en la nueva clase de implementación, no llame al método performExecute de la superclase.

Por qué y cuándo se efectúa esta tarea

Aunque la ampliación a partir del mandato exacto que va a sustituir puede parecer un contrasentido, la razón de que se emplee este método está relacionada con el soporte de versiones futuras de HCL Commerce. Este método protege a su código de los posibles cambios que se efectúen en interfaces de mandatos en versiones futuras de HCL Commerce.

Por ejemplo, suponga que desea sustituir la lógica de negocio del mandato de tarea OrderNotifyCmdImpl. En este caso, deberá crear un nuevo mandato de tarea denominado CustomizedOrderNotifyCmdImpl. Este mandato amplía OrderNotifyCmdImpl. En el nuevo mandato CustomizedOrderNotifyCmdImpl, debe crear la nueva lógica de negocio, pero no llame al método performExecute desde la superclase. Si una versión futura de HCL Commerce introduce un nuevo método, denominado newMethod en la interfaz, la versión correspondiente del mandato OrderNotifyCmdImpl incluirá una implementación predeterminada del método newMethod. Luego, puesto que el nuevo mandato se amplía a partir de OrderNotifyCmdImpl, el compilador encontrará la implementación predeterminada de este método en el mandato OrderNotifyCmdImpl y su nuevo mandato estará protegido frente a los cambios de interfaz.