আমি সচেতন যে একাধিক প্রোগ্রামিং প্যারাডিম জুড়ে আক্রমণকারীদের ধারণাটি বিদ্যমান। উদাহরণস্বরূপ, লুপ আক্রমণকারীরা ওও, ক্রিয়ামূলক এবং পদ্ধতিগত প্রোগ্রামিংয়ে প্রাসঙ্গিক।
তবে, ওওপিতে পাওয়া যায় এমন একটি খুব দরকারী ধরণ হ'ল একটি নির্দিষ্ট ধরণের ডেটার আক্রমণকারী। এটিই আমি শিরোনামে "টাইপ-ভিত্তিক আক্রমণকারী" বলছি। উদাহরণস্বরূপ, একটি Fraction
প্রকারের আক্রমণকারীর সাথে একটি হতে পারে numerator
এবং denominator
তাদের জিসিডি সর্বদা 1 থাকে (অর্থাত্ ভগ্নাংশটি হ্রাস আকারে থাকে)। আমি কেবল এইরকম কিছু ধরণের এনক্যাপসুলেশন করে গ্যারান্টি দিতে পারি, এর ডেটা অবাধে সেট না করে। বিনিময়ে, আমাকে কখনই এটি হ্রাস হয়েছে কিনা তা খতিয়ে দেখতে হবে না, তাই আমি সমতা পরীক্ষার মতো অ্যালগোরিদমগুলিকে সহজ করতে পারি।
অন্যদিকে, আমি যদি কেবল Fraction
এনক্যাপসুলেশনের মাধ্যমে এই গ্যারান্টিটি সরবরাহ না করে কোনও প্রকারের ঘোষণা করি তবে আমি নিরাপদে এই ধরণের কোনও ফাংশন লিখতে পারি না যা ধরে নিয়েছে যে ভগ্নাংশটি হ্রাস পেয়েছে, কারণ ভবিষ্যতে অন্য কেউ আসতে পারে এবং কোনও উপায় যুক্ত করতে পারে একটি অ-হ্রাস ভগ্নাংশ ধরে রাখা।
সাধারণত, এই ধরণের আক্রমণকারীের অভাব হতে পারে:
- প্রাক-শর্ত হিসাবে আরও জটিল অ্যালগরিদমগুলি একাধিক জায়গায় পরীক্ষা করা / নিশ্চিত করা দরকার
- এই পুনরাবৃত্ত পূর্ব শর্তগুলি একইভাবে অন্তর্নিহিত জ্ঞানের প্রতিনিধিত্ব করে বলে DRY লঙ্ঘন (যে আক্রমণকারী সত্য হওয়া উচিত)
- সংকলন-সময়ের গ্যারান্টি না দিয়ে রানটাইম ব্যর্থতার মাধ্যমে প্রাক-শর্তগুলি প্রয়োগ করা
সুতরাং আমার প্রশ্নটি হ'ল এই ধরণের আক্রমণকারীটির কার্যকরী প্রোগ্রামিংয়ের উত্তর। কম-বেশি একই জিনিস অর্জনের কোনও কার্যকরী-মূ ?় উপায় আছে? বা কার্যকরী প্রোগ্রামিংয়ের এমন কোনও দিক রয়েছে যা উপকারগুলি কম প্রাসঙ্গিক করে তোলে?
PrimeNumber
ক্লাস বিবেচনা করুন । প্রতিটি ক্রিয়াকলাপের জন্য আদিমতার জন্য একাধিক রিলান্ড্যান্ট চেক করা খুব ব্যয়বহুল হবে, তবে এটি কোনও ধরণের পরীক্ষা নয় যা সংকলন-সময় সম্পাদন করা যেতে পারে। (অপারেশন অনেক আপনি মৌলিক সংখ্যার উপর সম্পাদন করতে, বলতে গুণ চাই, একটি ফর্ম না অবসান মন্তব্য পোস্ট যেহেতু আমি কার্যকরী প্রোগ্রামিং নিজেকে জানি না হিসাবে, অর্থাত ফলাফল সম্ভবত মৌলিক নিশ্চিত করা হয় না