Итак, коллега познакомил меня с шаблоном публикации/подписки (в JS/jQuery), но мне трудно справиться с тем, почему этот шаблон можно использовать для "нормального" JavaScript/jQuery.
Например, раньше у меня был следующий код...
$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();
}
});
И я мог бы увидеть достоинство делать это, например...
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'));
});
Поскольку он вводит возможность повторно использовать функциональность removeOrder
для разных событий и т.д.
Но почему вы решили внедрить шаблон публикации/подписки и перейти к следующей длине, если он сделает то же самое? (FYI, я использовал 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'));
});
Я читал о шаблоне точно, но я просто не могу представить, почему это было бы необходимо. Учебники, которые я видел, которые объясняют, как реализовать этот шаблон, охватывают как основные примеры, как мои собственные.
Я предполагаю, что полезность pub/sub станет очевидной в более сложном приложении, но я не могу представить ее. Боюсь, что я совершенно не понимаю смысла; но я бы хотел узнать, есть ли он!
Не могли бы вы объяснить лаконично, почему и в каких ситуациях этот шаблон выгоден? Стоит ли использовать шаблон pub/sub для фрагментов кода, подобных моим примерам выше?