আমি সন্দেহ করি যে আমি এই প্রশ্নটি সন্ধান করতে যাচ্ছি না, তবে আমি খুব আছি অভিজ্ঞ প্রোগ্রামার, এবং আমি আশা করি আরো খোলা মনের পাঠকদের কিছু মনোযোগ দিতে হবে।
আমি বিশ্বাস করি যে তাদের মান-ফিরিয়ে দেওয়ার পদ্ধতিগুলি (ভিআরপি) নির্মূলবাদী এবং খাঁটি হওয়ার জন্য এটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষাগুলির পক্ষে আরও উপযুক্ত।
'ভিআরপি' হ'ল একটি ফাংশনের আধুনিক একাডেমিক নাম যা অভিব্যক্তির অংশ হিসাবে ডাকা হয় এবং এর একটি রিটার্ন মান রয়েছে যা অভিব্যক্তির মূল্যায়নের সময় কলকে পরিবর্তিত করে। যেমন একটি বিবৃতি যেমন x = 1 + f(y)
ফাংশনf
একটি ভিআরপি হিসাবে পরিবেশন করা হয়।
'নির্ধারক' এর অর্থ হ'ল ফাংশনের ফলাফল কেবল তার পরামিতিগুলির মানগুলির উপর নির্ভর করে। আপনি যদি একই প্যারামিটার মানগুলির সাথে আবার কল করেন তবে আপনি একই ফলাফলটি পেতে নিশ্চিত।
'খাঁটি' অর্থ কোনও পার্শ্ব-প্রতিক্রিয়া নয়: ফাংশনটি কল করা ফলাফল গণনা করা ছাড়া কিছুই করে না । এর অর্থ ব্যাখ্যা করা যায় কোনও গুরুত্বপূর্ণ নয়বাস্তবে পার্শ্ব-প্রতিক্রিয়া , সুতরাং ভিআরপি যদি প্রতিবার ডাকা হয় কোনও বার্তা আউটপুট দেয়, উদাহরণস্বরূপ, সম্ভবত এটি উপেক্ষা করা যেতে পারে।
সুতরাং, যদি সি # তে, আপনার ফাংশনটি নির্বিচারবাদী এবং খাঁটি না হয়, আমি বলি যে আপনি এটিকে একটি void
ফাংশন করতে হবে (অন্য কথায়, ভিআরপি নয়), এবং যে মানটি ফিরে আসতে হবে তা কোনও out
বা একটি ref
প্যারামিটারে ফিরে আসতে হবে ।
উদাহরণস্বরূপ, যদি আপনার একটি ডাটাবেস টেবিল থেকে কিছু সারি মুছে ফেলার কোনও ফাংশন থাকে এবং আপনি এটি মুছে ফেলা সারিগুলির সংখ্যাটি ফিরিয়ে দিতে চান তবে আপনার এটির মতো কিছু ঘোষণা করা উচিত:
public void DeleteBasketItems(BasketItemCategory category, out int count);
আপনি যদি কখনও কখনও এই ফাংশনটি কল করতে চান তবে এটি পান না count
আপনি সর্বদা একটি ওভারলোডিং ঘোষণা করতে পারেন।
আপনি জানতে চাইতে পারেন কেন এই স্টাইলটি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের চেয়ে ভাল। মূলত, এটি এমন একটি প্রোগ্রামিংয়ের স্টাইলে খাপ খায় যা (প্রক্রিয়াজাত প্রোগ্রামিং) কিছুটা হলেও বলা যায় না, এবং এটি একটি প্রক্রিয়াগত প্রোগ্রামিং স্টাইল যা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ে আরও ভাল ফিট করে।
কেন? বস্তুর ধ্রুপদী মডেল হ'ল তাদের বৈশিষ্ট্য (ওরফে বৈশিষ্ট্য) রয়েছে এবং আপনি সেই বৈশিষ্ট্যগুলি পড়ার এবং আপডেট করার মাধ্যমে (মূলত) বস্তুটি জিজ্ঞাসাবাদ এবং হেরফের করেন। একটি পদ্ধতিগত প্রোগ্রামিং শৈলী এটি করা সহজ করে তোলে, কারণ আপনি সম্পত্তি এবং সেটগুলি নির্ধারণের মধ্যে স্বেচ্ছাসেবক কোড কার্যকর করতে পারেন।
পদ্ধতিগত প্রোগ্রামিং এর খারাপ দিকটি হ'ল, যেহেতু আপনি সমস্ত স্থানটিতে স্বেচ্ছাসেবক কোড কার্যকর করতে পারেন, আপনি বৈশ্বিক পরিবর্তনশীল এবং পার্শ্ব-প্রতিক্রিয়াগুলির মাধ্যমে কিছু খুব অবসন্নতা এবং বাগ-ঝুঁকিপূর্ণ ইন্টারঅ্যাকশন পেতে পারেন।
সুতরাং, একদম সহজভাবে, আপনার কোডটি পড়া কারও কাছে সিগন্যাল করা ভাল অনুশীলন যে কোনও ফাংশনটির অ-মানযুক্তকে ফিরিয়ে দেওয়ার ফলে পার্শ্ব-প্রতিক্রিয়া হতে পারে।