Yani, bir meslektaşım (JS / jQuery) Yayın / abonelik desen beni tanıştırdı ama kulpları ile almak zor bir zaman yaşıyorum neden kimse 'normal' JavaScript / jQuery üzerinde bu kalıbı kullanmak.
Örneğin, daha önce şu koda sahiptim ...
$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();
}
});
Ve bunun yerine bunu yapmanın değerini görebiliyordum, örneğin ...
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'));
});
Çünkü removeOrder
farklı olaylar vb. İçin işlevselliği yeniden kullanma yeteneği sunar .
Peki aynı şeyi yapıyorsa neden yayınlama / abone olma modelini uygulamaya ve aşağıdaki uzunluklara gitmeye karar verdiniz? (Bilginize, jQuery küçük pub / alt kullandım )
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'));
});
Örüntü hakkında kesin olarak okudum, ancak bunun neden gerekli olduğunu hayal edemiyorum. Bu kalıbın nasıl uygulanacağını açıklayan gördüğüm öğreticiler, sadece benimki kadar temel örnekleri kapsıyor.
Pub / sub'ın kullanışlılığının daha karmaşık bir uygulamada kendini göstereceğini hayal ediyorum, ancak bir tane hayal edemiyorum. Korkarım noktayı tamamen kaçırıyorum; ama eğer varsa bir noktayı bilmek isterim!
Bu modelin neden ve hangi durumlarda avantajlı olduğunu kısaca açıklayabilir misiniz ? Yukarıdaki örneklerim gibi kod parçacıkları için pub / sub modelini kullanmaya değer mi?