【发布时间】:2012-11-10 20:47:28
【问题描述】:
所以,一位同事向我介绍了发布/订阅模式(在 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 的用处会在更复杂的应用程序中表现出来,但我无法想象。恐怕我完全没有抓住重点;但如果有的话,我想知道重点!
您能否简洁地解释一下为什么以及在什么情况下这种模式是有利的?像我上面的例子一样,对代码 sn-ps 使用 pub/sub 模式是否值得?
【问题讨论】:
标签: javascript jquery design-patterns publish-subscribe