Un collègue m'a fait découvrir le modèle de publication et d'abonnement (en JS/jQuery), mais j'ai du mal à me faire à l'idée de pourquoi on utiliserait ce modèle plutôt que le JavaScript/jQuery "normal".
Par exemple, auparavant, j'avais le code suivant...
$container.on('click', '.remove_order', function(event) {
event.preventDefault();
var orders = $(this).parents('form:first').find('div.order');
if (orders.length > 2) {
orders.last().remove();
}
});
Et je pourrais voir le mérite de faire ça à la place, par exemple...
removeOrder = function(orders) {
if (orders.length > 2) {
orders.last().remove();
}
}
$container.on('click', '.remove_order', function(event) {
event.preventDefault();
removeOrder($(this).parents('form:first').find('div.order'));
});
Parce qu'il introduit la possibilité de réutiliser le removeOrder
fonctionnalité pour différents événements, etc.
Mais pourquoi décider de mettre en œuvre le modèle de publication/abonnement et se donner la peine de le faire, si cela revient au même ? (Pour info, j'ai utilisé jQuery tiny pub/sub )
removeOrder = function(e, orders) {
if (orders.length > 2) {
orders.last().remove();
}
}
$.subscribe('iquery/action/remove-order', removeOrder);
$container.on('click', '.remove_order', function(event) {
event.preventDefault();
$.publish('iquery/action/remove-order', $(this).parents('form:first').find('div.order'));
});
J'ai lu des articles sur ce modèle, mais je n'arrive pas à imaginer pourquoi cela serait nécessaire. Les tutoriels que j'ai vus qui expliquent comment pour mettre en œuvre ce modèle ne couvrent que des exemples aussi basiques que les miens.
J'imagine que l'utilité du pub/sub se révélerait dans une application plus complexe, mais je ne peux pas en imaginer une. Je crains de passer complètement à côté de l'essentiel, mais j'aimerais bien le savoir s'il y en a un !
Pouvez-vous expliquer succinctement pourquoi et dans quelles situations ce modèle est avantageux ? Est-il utile d'utiliser le modèle pub/sub pour les extraits de code comme mes exemples ci-dessus ?