মেথড শেইনিং হ'ল অবজেক্ট পদ্ধতির অনুশীলন যা অন্য কোনও পদ্ধতির জন্য ফলাফল আহ্বানের জন্য যাতে বস্তুটি নিজেই ফিরে আসে। এটার মত:
participant.addSchedule(events[1]).addSchedule(events[2]).setStatus('attending').save()
এটি একটি ভাল অনুশীলন হিসাবে বিবেচিত বলে মনে হচ্ছে, যেহেতু এটি পঠনযোগ্য কোড বা একটি "সাবলীল ইন্টারফেস" তৈরি করে। তবে, আমার কাছে এটির পরিবর্তে অবজেক্ট ওরিয়েন্টেশন নিজেই বোঝানো অবজেক্ট কলিং নোটেশনটি ভেঙে ফেলবে বলে মনে হয় - ফলস্বরূপ কোডটি পূর্ববর্তী পদ্ধতির ফলস্বরূপ কার্য সম্পাদনকারী ক্রিয়াকলাপকে উপস্থাপন করে না , যা অবজেক্ট অরিয়েন্টেড কোডটি সাধারণত কাজ করার জন্য প্রত্যাশিত:
participant.getSchedule('monday').saveTo('monnday.file')
এই তফাতটি "ফলস্বরূপ অবজেক্টকে কল করা" এর বিন্দু-চিহ্নের জন্য দুটি পৃথক অর্থ তৈরি করতে পরিচালিত করে: শৃঙ্খলা প্রসঙ্গে, উপরোক্ত উদাহরণটি অংশগ্রহণকারী অবজেক্টটি সংরক্ষণ হিসাবে পড়বে , যদিও উদাহরণটি বাস্তবে সময়সূচীটি সংরক্ষণ করার উদ্দেশ্যে করা হয়েছে getSchedule দ্বারা প্রাপ্ত বস্তু।
আমি বুঝতে পারি যে এখানে পার্থক্যটি হ'ল বলা হয় যে পদ্ধতিটি কিছু প্রত্যাশা করে কিনা তা প্রত্যাশা করা উচিত বা না (এই ক্ষেত্রে এটি শৃঙ্খলার জন্য ডাকা বস্তুকে নিজেই ফিরিয়ে দেবে)। তবে এই দুটি ক্ষেত্রে কেবল স্বরলিপি থেকে পৃথক করা যায় না, কেবল যে পদ্ধতিগুলি বলা হচ্ছে তার শব্দার্থবিদ্যা থেকে। যখন পদ্ধতিতে শৃঙ্খলা ব্যবহার করা হয় না, আমি সর্বদা জানতে পারি যে একটি পদ্ধতি কল পূর্ববর্তী কলের ফলাফলের সাথে সম্পর্কিত কিছু বিষয়ে পরিচালিত হয় - শৃঙ্খলাবদ্ধ হয়ে, এই অনুমানটি ভেঙে যায় এবং আসল বস্তুটি কী তা বোঝার জন্য আমাকে পুরো শৃঙ্খলে প্রক্রিয়া করতে হবে বলা হয় আসলে। উদাহরণ স্বরূপ:
participant.attend(event).setNotifications('silent').getSocialStream('twitter').postStatus('Joining '+event.name).follow(event.getSocialId('twitter'))
সেখানে শেষ দুটি পদ্ধতির কলগুলি getSocialStream এর ফলাফলকে বোঝায়, যেখানে অংশগ্রহীতাকে বোঝায় before সম্ভবত প্রাসঙ্গিক পরিবর্তন হয় যেখানে চেইনগুলি লিখতে এটি খারাপ অনুশীলন (এটি?), তবুও আপনাকে ক্রমাগত দেখতে হবে যে ডট-চেইনগুলি একইরকম দেখায় আসলে একই প্রসঙ্গের মধ্যে রয়েছে, বা কেবল ফলাফলের উপর কাজ করে? ।
আমার কাছে এটি প্রদর্শিত হয় যে পদ্ধতিটি স্তম্ভিতভাবে শৃঙ্খলাবদ্ধভাবে পাঠযোগ্য কোড তৈরি করে, বিন্দু-চিহ্নের অর্থটি ওভারলোড করে কেবল আরও বিভ্রান্তির সৃষ্টি করে। যেহেতু আমি নিজেকে প্রোগ্রামিং গুরু হিসাবে বিবেচনা করি না, আমি ধরে নিই যে দোষটি আমার। তো: আমি কী মিস করছি? আমি কীভাবে কোনওভাবে ভুল শৃঙ্খলাবদ্ধ পদ্ধতি বুঝতে পারি? কিছু ক্ষেত্রে রয়েছে যেখানে পদ্ধতিতে শৃঙ্খলাবদ্ধতা বিশেষত ভাল, আবার কিছু ক্ষেত্রে এটি বিশেষত খারাপ?
সিডিনোট: আমি বুঝতে পারি এই প্রশ্নটি একটি প্রশ্ন হিসাবে মুখোশযুক্ত মতামতের বিবৃতি হিসাবে পড়া যেতে পারে। এটি তবে তা নয় - শৃঙ্খলাভাবকে কেন ভাল অনুশীলন হিসাবে বিবেচনা করা হয় তা আমি সত্যই বুঝতে চাই এবং এটি অন্তর্নিহিত বস্তু-ভিত্তিক স্বরলিপিটি ভেঙে ভাবার ক্ষেত্রে আমি কোথায় ভুল করব।
.
যা কোনও মেহতড ফেরতের মানগুলিকে উপেক্ষা করে এবং সর্বদা একই অবজেক্টটি ব্যবহার করে কোনও শৃঙ্খলিত পদ্ধতিতে প্রার্থনা করে।