Vì vậy, một đồng nghiệp đã giới thiệu cho tôi mẫu xuất bản / đăng ký (trong JS / jQuery), nhưng tôi đang gặp khó khăn khi hiểu tại sao một người lại sử dụng mẫu này thay vì JavaScript / jQuery 'bình thường'.
Ví dụ: trước đây tôi có mã sau ...
$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();
}
});
Và thay vào đó, tôi có thể thấy công lao của việc làm này ...
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'));
});
Bởi vì nó giới thiệu khả năng sử dụng lại removeOrder
chức năng cho các sự kiện khác nhau, v.v.
Nhưng tại sao bạn quyết định triển khai mô hình xuất bản / đăng ký và đi đến các độ dài sau, nếu nó làm điều tương tự? (FYI, tôi đã sử dụng 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'));
});
Tôi chắc chắn đã đọc về mô hình này, nhưng tôi không thể tưởng tượng được tại sao điều này lại cần thiết. Các hướng dẫn tôi đã xem giải thích cách triển khai mô hình này chỉ bao gồm các ví dụ cơ bản như của riêng tôi.
Tôi tưởng tượng rằng tính hữu dụng của pub / sub sẽ tự rõ ràng trong một ứng dụng phức tạp hơn, nhưng tôi không thể tưởng tượng được. Tôi sợ rằng tôi hoàn toàn thiếu điểm; nhưng tôi muốn biết điểm nếu có!
Bạn có thể giải thích ngắn gọn lý do tại sao và trong những trường hợp nào thì mô hình này lại có lợi? Có đáng sử dụng mô hình pub / sub cho các đoạn mã như các ví dụ của tôi ở trên không?