Jadi, seorang kolega memperkenalkan saya pada pola publish / subscribe (di JS / jQuery), tetapi saya mengalami kesulitan untuk memahami mengapa seseorang akan menggunakan pola ini di atas JavaScript / jQuery 'normal'.
Misalnya, sebelumnya saya memiliki kode berikut ...
$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();
}
});
Dan saya bisa melihat manfaat melakukan ini sebagai gantinya, misalnya ...
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'));
});
Karena itu memperkenalkan kemampuan untuk menggunakan kembali removeOrder
fungsionalitas untuk berbagai acara, dll.
Tetapi mengapa Anda memutuskan untuk menerapkan pola terbitkan / berlangganan dan melakukan hal yang sama, jika itu melakukan hal yang sama? (FYI, saya menggunakan 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'));
});
Saya sudah membaca tentang polanya dengan pasti, tetapi saya tidak bisa membayangkan mengapa ini perlu. Tutorial yang pernah saya lihat menjelaskan cara menerapkan pola ini hanya mencakup contoh dasar seperti milik saya.
Saya membayangkan bahwa kegunaan pub / sub akan terlihat dengan sendirinya dalam aplikasi yang lebih kompleks, tetapi saya tidak dapat membayangkannya. Saya khawatir saya benar-benar kehilangan intinya; tapi saya ingin tahu intinya jika ada!
Bisakah Anda menjelaskan secara ringkas mengapa dan dalam situasi apa pola ini menguntungkan? Apakah layak menggunakan pola pub / sub untuk cuplikan kode seperti contoh saya di atas?