Donc, un collègue m'a présenté le modèle de publication / abonnement (dans JS / jQuery), mais j'ai du mal à comprendre pourquoi on utiliserait ce modèle sur 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 pouvais voir le mérite de faire cela à 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 la removeOrder
fonctionnalité pour différents événements, etc.
Mais pourquoi décideriez-vous d'implémenter le modèle de publication / d'abonnement et d'aller aux longueurs suivantes, s'il fait la même chose? (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 sur le modèle à coup sûr, mais je ne peux pas imaginer pourquoi cela serait jamais nécessaire. Les tutoriels que j'ai vus qui expliquent comment implémenter ce modèle ne couvrent que des exemples aussi basiques que le mien.
J'imagine que l'utilité du pub / sub se manifesterait dans une application plus complexe, mais je ne peux pas en imaginer une. J'ai peur de manquer complètement le point; mais j'aimerais savoir le point s'il y en a un!
Pourriez-vous expliquer succinctement pourquoi et dans quelles situations ce modèle est avantageux? Vaut-il la peine d'utiliser le modèle pub / sub pour les extraits de code comme mes exemples ci-dessus?