因此,一位同事向我介绍了发布/订阅模式(在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模式编写代码片段是否值得?