Remplacement de la logique métier d'une instruction de tâche existante

Pour remplacer la logique métier d'une instruction de tâche existante, vous devez créer une nouvelle classe d'implémentation pour l'instruction de tâche. Cette nouvelle classe d'implémentation doit s'étendre à partir de l'instruction de tâche existante, mais elle ne doit pas implémenter l'interface existante. En outre, dans la nouvelle classe d'implémentation, n'appelez pas la méthode performExecute de la superclasse.

Pourquoi et quand exécuter cette tâche

Bien que l'extension de la commande exacte que vous remplacez peut sembler contre-intuitive, la raison de prendre cette approche est liée à la prise en charge des futures versions de HCL Commerce. Cette approche protège votre code contre les modifications qui peuvent être apportées aux interfaces de commande dans les futures versions de HCL Commerce.

À titre d'exemple, supposons que vous vouliez remplacer la logique métier de l'instruction de tâche OrderNotifyCmdImpl. Dans ce cas, vous créerez une nouvelle instruction de tâches appelée CustomizedOrderNotifyCmdImpl. Cette commande étend OrderNotifyCmdImpl. Dans le nouveau CustomizedOrderNotifyCmdImpl, vous créez la nouvelle logique métier, mais n'appelez pas la méthode performExecute à partir de la superclasse. Si une version future de HCL Commerce introduit une nouvelle méthode, appelée newMethod dans l'interface, la version correspondante de la commande OrderNotifyCmdImpl inclura une implémentation par défaut de la méthode newMethod. Ensuite, puisque votre nouvelle commande étend à partir de OrderNotifyCmdImpl, le compilateur trouvera l'implémentation par défaut de cette nouvelle méthode dans la commande OrderNotifyCmdImpl et votre nouvelle commande est protégée contre le changement d'interface.