因此,一个同事向我介绍了发布/订阅模式(在 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'));
});
我肯定读过这个模式,但我不明白为什么有这个必要。我看过的解释 怎么做如何实现这种模式的教程只涵盖了像我自己的例子一样的基本示例。
我猜想,在更复杂的应用程序中,发布/订阅的用处会显而易见,但我无法想象。恐怕我完全没有抓住要点,但是如果有的话,我想知道要点是什么!
你能解释 简洁明了为什么和在什么情况下这种模式是有利的?对于像我上面的示例这样的代码片段,使用发布/订阅模式是否值得?