আমি স্ট্যাটিক পদ্ধতিতে ভরা ইউটিলিটি ক্লাস পছন্দ করতাম। তারা সাহায্যকারী পদ্ধতির একটি দুর্দান্ত একীকরণ করেছে যা অন্যথায় অপ্রয়োজনীয়তা এবং রক্ষণাবেক্ষণকে নরকের কারণ হতে পারে। এগুলি ব্যবহার করা খুব সহজ, কোনও তাত্ক্ষণিক কাজ নেই, কোনও নিষ্পত্তি নেই, কেবলমাত্র আগুনের জন্য get আমি অনুমান করি যে এটি একটি পরিষেবা ভিত্তিক আর্কিটেকচার তৈরির আমার প্রথম অযৌক্তিক প্রয়াস - প্রচুর স্টেটলেস পরিষেবা যা তাদের কাজটি করেছে এবং অন্য কিছুই না। যেহেতু একটি সিস্টেম বাড়ছে, ড্রাগন আসছে।
পলিমরফিজ্ম
বলুন আমরা পদ্ধতি UtilityClass.SomeMethod যে সুখে বরাবর buzz গুলি আছে। হঠাৎ আমাদের কার্যকারিতা কিছুটা পরিবর্তন করতে হবে। বেশিরভাগ কার্যকারিতা একই, তবে তবুও আমাদের কয়েকটি অংশ পরিবর্তন করতে হবে। এটি কোনও স্থিতিশীল পদ্ধতি না থাকলে আমরা একটি ডাইরিভেট শ্রেণি তৈরি করতে পারি এবং প্রয়োজনীয় পদ্ধতি পদ্ধতির সামগ্রীটি পরিবর্তন করতে পারি। এটি একটি স্থিতিশীল পদ্ধতি হিসাবে, আমরা পারি না। অবশ্যই, যদি আমাদের কেবল পুরাতন পদ্ধতির আগে বা পরে কার্যকারিতা যুক্ত করতে হয় তবে আমরা একটি নতুন শ্রেণী তৈরি করতে পারি এবং এর মধ্যে পুরানোটিকে কল করতে পারি - তবে এটি কেবল স্থূল।
ইন্টারফেস সংকট
স্থির পদ্ধতি যুক্তির কারণে ইন্টারফেসের মাধ্যমে সংজ্ঞায়িত করা যায় না। এবং যেহেতু আমরা স্থিতিশীল পদ্ধতিগুলিকে ওভাররাইড করতে পারি না, স্ট্যাটিক ক্লাসগুলি যখন আমাদের ইন্টারফেসের মাধ্যমে তাদের পাস করার প্রয়োজন হয় তখন অকেজো হয়। এটি আমাদের কৌশল প্যাটার্নের অংশ হিসাবে স্ট্যাটিক ক্লাস ব্যবহার করতে অক্ষম করে। আমরা ইন্টারফেসের পরিবর্তে প্রতিনিধিদের পাস করে কিছু সমস্যা সমাধান করতে পারি ।
পরীক্ষা করা
এটি মূলত উপরে বর্ণিত ইন্টারফেসের দুর্দশাগুলির সাথে এক সাথে যায়। আমাদের বিনিময় বাস্তবায়নের দক্ষতা যেহেতু খুব সীমিত তাই আমাদের পরীক্ষার কোডের সাথে উত্পাদন কোডটি প্রতিস্থাপন করতেও সমস্যা হবে। আবার, আমরা এগুলি গুটিয়ে রাখতে পারি তবে এটি আমাদের কোডের বৃহত অংশগুলি পরিবর্তন করতে হবে কেবল আসল অবজেক্টগুলির পরিবর্তে মোড়কে গ্রহণ করতে সক্ষম হতে।
পালকগুলি ব্লবগুলি
যেমন স্থির পদ্ধতিগুলি সাধারণত ইউটিলিটি পদ্ধতি হিসাবে ব্যবহৃত হয় এবং ইউটিলিটি পদ্ধতিগুলির সাধারণত বিভিন্ন উদ্দেশ্য থাকে, আমরা খুব দ্রুত একটি অবিচ্ছিন্ন কার্যকারিতা দ্বারা পূর্ণ একটি বৃহত শ্রেণীর সাথে সমাপ্ত করব - আদর্শভাবে, প্রতিটি শ্রেণীর সিস্টেমের মধ্যেই একটি উদ্দেশ্য থাকতে হবে । যতক্ষণ না তাদের উদ্দেশ্যগুলি ভালভাবে সংজ্ঞায়িত করা হয় ততক্ষণ আমি তার চেয়ে পাঁচ গুণ বেশি ক্লাস করতাম।
প্যারামিটার হামাগুড়ি
শুরুতে, এই ছোট্ট সুন্দর এবং নিরীহ স্থির পদ্ধতিতে কোনও একক প্যারামিটার লাগতে পারে। কার্যকারিতা বাড়ার সাথে সাথে কয়েকটি নতুন পরামিতি যুক্ত করা হয়। শীঘ্রই আরও প্যারামিটারগুলি যুক্ত করা হয় যা alচ্ছিক, তাই আমরা পদ্ধতির ওভারলোডগুলি তৈরি করি (বা কেবল তাদের সমর্থনকারী ভাষাগুলিতে ডিফল্ট মান যুক্ত করি)। খুব শীঘ্রই, আমাদের একটি পদ্ধতি রয়েছে যা 10 পরামিতি নেয়। কেবলমাত্র প্রথম তিনটি সত্যই প্রয়োজনীয়, 4-7 পরামিতিগুলি alচ্ছিক। তবে যদি প্যারামিটার 6 নির্দিষ্ট করা থাকে, 7-9 এছাড়াও পূরণ করতে হবে ... আমরা যদি এই স্থিতিশীল পদ্ধতিটি করে যা করার একক উদ্দেশ্য নিয়ে একটি শ্রেণি তৈরি করেছিলাম, তবে আমরা প্রয়োজনীয় প্যারামিটারগুলি গ্রহণ করে সমাধান করতে পারতাম কনস্ট্রাক্টর এবং ব্যবহারকারীর বৈশিষ্ট্যগুলির মাধ্যমে alচ্ছিক মান নির্ধারণের অনুমতি দেয় বা একই সাথে একাধিক আন্তঃনির্ভরশীল মান সেট করতে পারে। এছাড়াও, যদি কোনও পদ্ধতি এই পরিমাণে জটিলতায় বেড়ে যায়,
বিনা কারণে ক্লাসগুলির উদাহরণ তৈরি করার জন্য গ্রাহকদের দাবী
সর্বাধিক প্রচলিত যুক্তিগুলির মধ্যে একটি হ'ল, কেন আমাদের ক্লাসের গ্রাহকরা দাবী করেন যে পরবর্তী সংস্করণটির জন্য কোনও ব্যবহার না করেই এই একক পদ্ধতিতে অনুরোধ করার জন্য একটি উদাহরণ তৈরি করুন? একটি শ্রেণীর উদাহরণ তৈরি করা বেশিরভাগ ভাষায় খুব সস্তা অপারেশন, সুতরাং গতি কোনও সমস্যা নয়। ভোক্তার সাথে অতিরিক্ত লাইন কোড যুক্ত করা ভবিষ্যতে অনেক বেশি রক্ষণাবেক্ষণ সমাধানের ভিত্তি স্থাপনের জন্য স্বল্প ব্যয়। এবং পরিশেষে, আপনি যদি উদাহরণগুলি তৈরি করা এড়াতে চান, কেবল আপনার শ্রেণীর একটি সিঙ্গলটন মোড়ক তৈরি করুন যা সহজেই পুনরায় ব্যবহারের সুযোগ দেয় - যদিও এটি আপনার শ্রেণিটি রাষ্ট্রহীন হওয়ার প্রয়োজনীয়তা তৈরি করে। এটি যদি রাষ্ট্রহীন না হয় তবে আপনি দীর্ঘমেয়াদে সমস্ত সুবিধা দেওয়ার পরেও স্থির মোড়কের পদ্ধতি তৈরি করতে পারেন যা সমস্ত কিছু পরিচালনা করে। অবশেষে,
কেবলমাত্র একটি সিথ রহস্যজনক
বিষয়গুলিতে ডিল করে অবশ্যই, স্থির পদ্ধতিগুলির প্রতি আমার অপছন্দের ব্যতিক্রম রয়েছে। সত্যিকারের ইউটিলিটি ক্লাসগুলি যে ফুলতে কোনও ঝুঁকি তৈরি করে না সেগুলি স্থির পদ্ধতির জন্য দুর্দান্ত কেস - সিস্টেম।এর উদাহরণ হিসাবে রূপান্তর করুন। যদি আপনার প্রকল্পটি ভবিষ্যতের রক্ষণাবেক্ষণের জন্য কোনও প্রয়োজনীয়তা ছাড়াই একমাত্র বন্ধ থাকে তবে সামগ্রিক আর্কিটেকচারটি খুব গুরুত্বপূর্ণ নয় - স্থিতিশীল বা অ-স্থিতিশীল, আসলেই কিছু যায় আসে না - তবে উন্নয়নের গতি অবশ্য তা করে।
মান, মান, মান!
উদাহরণস্বরূপ পদ্ধতি ব্যবহার করা আপনাকে স্থির পদ্ধতিগুলি ব্যবহার করতে বাধা দেয় না এবং এর বিপরীতে। যতক্ষণ না এই পার্থক্যের পিছনে যুক্তি রয়েছে এবং এটি মানসম্মত। বিভিন্ন বাস্তবায়ন পদ্ধতির সাথে বিস্তৃত ব্যবসায়ের স্তর দেখার চেয়ে খারাপ আর কিছু নেই।