সুতরাং, একজন সহকর্মী আমাকে প্রকাশ / সাবস্ক্রাইব প্যাটার্নের (জেএস / জিকুয়েরিতে) পরিচয় করিয়ে দিয়েছিলেন, তবে কেন কেউ 'নরমাল' জাভাস্ক্রিপ্ট / জিকুয়েরির উপর এই প্যাটার্নটি ব্যবহার করতে পারে তা বুঝতে আমার খুব কষ্ট হচ্ছে ।
উদাহরণস্বরূপ, পূর্বে আমার কাছে নিম্নলিখিত কোডগুলি ছিল ...
$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
বিভিন্ন ইভেন্ট ইত্যাদির জন্য কার্যকারিতা পুনরায় ব্যবহার করার দক্ষতার পরিচয় দেয় etc.
তবে আপনি কেন প্রকাশ / সাবস্ক্রাইব প্যাটার্ন বাস্তবায়ন করার সিদ্ধান্ত নেবেন এবং যদি এটি একই কাজ করে তবে নিম্নলিখিত দৈর্ঘ্যে যান? (এফওয়াইআই, আমি jQuery ক্ষুদ্র পাব / সাব ব্যবহার করেছি )
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'));
});
আমি নিশ্চিতভাবে প্যাটার্নটি সম্পর্কে পড়েছি, তবে কেন এটি কখনও প্রয়োজন হবে তা আমি ঠিক ভাবতে পারি না। আমি যে টিউটোরিয়ালগুলি দেখেছি সেগুলি ব্যাখ্যা করে যে কীভাবে এই প্যাটার্নটি কার্যকর করা যায় কেবলমাত্র আমার নিজের মতো বুনিয়াদি উদাহরণগুলিকেও কভার করে।
আমি কল্পনা করি যে পাব / সাবটির উপযোগিতা আরও জটিল অ্যাপ্লিকেশনটিতে নিজেকে স্পষ্ট করে তুলবে, তবে আমি এটির কল্পনাও করতে পারি না। আমি ভীত যে আমি পুরোপুরি বিন্দুটি মিস করছি; তবে আমি যদি সেখানে একটি পয়েন্টটি জানতে চাই!
আপনি কী সংক্ষিপ্তভাবে ব্যাখ্যা করতে পারেন কেন এবং কোন পরিস্থিতিতে এই ধরণটি সুবিধাজনক? উপরের আমার উদাহরণগুলির মতো কোড স্নিপেটের জন্য কি পাব / সাব প্যাটার্নটি ব্যবহার করা উপযুক্ত?