Tak więc kolega zapoznał mnie ze wzorcem publikowania / subskrypcji (w JS / jQuery), ale trudno mi zrozumieć, dlaczego można użyć tego wzorca „normalnego” JavaScript / jQuery.
Na przykład wcześniej miałem następujący kod ...
$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();
}
});
I zamiast tego mogłem zobaczyć zalety zrobienia tego, na przykład ...
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'));
});
Ponieważ wprowadza możliwość ponownego użycia removeOrder
funkcjonalności dla różnych wydarzeń itp.
Ale dlaczego miałbyś zdecydować się na zaimplementowanie wzorca publikowania / subskrypcji i przechodzenie do następujących długości, jeśli robi to samo? (FYI, użyłem 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'));
});
Na pewno czytałem o wzorze, ale po prostu nie mogę sobie wyobrazić, dlaczego miałoby to kiedykolwiek być konieczne. Samouczki, które widziałem, wyjaśniają, jak to zrobić zaimplementować ten wzorzec, obejmują tylko tak podstawowe przykłady, jak moje własne.
Wyobrażam sobie, że użyteczność pub / sub ujawniłaby się w bardziej złożonej aplikacji, ale nie mogę sobie takiej wyobrazić. Obawiam się, że zupełnie nie rozumiem; ale chciałbym wiedzieć, o co chodzi, jeśli taki istnieje!
Czy mógłbyś zwięźle wyjaśnić, dlaczego iw jakich sytuacjach ten wzór jest korzystny? Czy warto używać wzorca pub / sub we fragmentach kodu, takich jak powyższe przykłady?