所以,一位同事向我介绍了发布/订阅模式(在 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
为不同事件重用功能等的能力。
但是,如果它做同样的事情,为什么要决定实现发布/订阅模式并进行以下长度?(仅供参考,我使用了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 模式是否值得?