এখনও বিশ্বে এমন লোক রয়েছে যারা "সাধারণ কোডিং" তে জাভ জেনেরিকগুলি ব্যবহার করবেন না । আমি এটি সি ++ টেম্পলেটগুলির সাথে বিশ্বাস করতে পারি, তবে জেনেরিকস? তারা শিখতে / ব্যবহার করাও কঠিন নয়। গুরুতরভাবে জাভা এবং সি ++ এর সেরা বৈশিষ্ট্যগুলি যথাক্রমে জেনেরিক এবং টেম্পলেট।
মানুষকে জিনিসকে বোঝানোর সর্বোত্তম উপায় হ'ল একটি জোরালো যুক্তি দেওয়া, হুমকীহীন হওয়া এবং সঠিক হওয়া।
যতক্ষণ আপনি আপনার প্রোগ্রামিং ভাষা হিসাবে টেমপ্লেটগুলি ব্যবহার করার মতো কিছু করছেন না, প্যারাম্যাট্রিক পলিমারফিজম (জেনেরিক্স / টেম্পলেট) প্রায় অবশ্যই ভাল।
1. কোড সদৃশ এড়ানো।
এটি সুস্পষ্ট, তবে বহুতল কোডটি সাধারণ কোড। এজন্য এটিকে জেনেরিক বলা হয়।
2. আরও ভাল স্থিতিশীল চেকিং সমর্থন করে।
স্থিতিমাপ পলিমরফিজম ছাড়া শেষ পর্যন্ত ভালো জিনিস লেখা public Object clone()
বা public boolean equals(object b)
যা শুধু জঘন্য কাজ হয় না, তারা ধরনের যে তারা কি সম্পর্কে কোন তথ্য প্রদান আছে, এবং অপরিবর্তনীয়ভাবে সব জায়গায় বেশি ব্যতিক্রম নিক্ষেপ শেষ। প্যারামেট্রিক পলিমারফিজমের বিকল্প হ'ল পুরো জায়গা জুড়ে কাস্ট
৩. অ প্যারাম্যাট্রিক পলিমারফিজম ওওপি কোড মূলত "বাইনারি পদ্ধতিগুলি" সঠিক উপায়ে পরিচালনা করতে অক্ষম।
আপনি এগুলি প্রায়শই ব্যবহার করেন।
৪. এটি সর্বোত্তম অনুশীলন
জাভাতে জেনেরিকের ব্যবহারকে সেরা অনুশীলন হিসাবে বিবেচনা করা হয় (জোশ ব্লচের কার্যকর জাভা দেখুন)। সুটার এবং আলেকজান্দ্রেস্কুর মতো প্রধান সি ++ চিন্তাবিদরাও বিভিন্ন সমস্যা সমাধানের জন্য টেমপ্লেটগুলির ব্যবহারকে উত্সাহিত করেন।
৫. এটি ওও দৃষ্টান্তের সাথে খাপ খায়।
লোকেরা প্রায়শই এটি লক্ষ্য করে না, তবে উপ-টাইপিং এবং জেনেরিকগুলির সংমিশ্রণ একটি সিস্টেমকে অনেক বেশি শক্তিশালী অভিব্যক্তিযুক্ত করে তোলে এবং কেবলমাত্র একটির সাথে কোনও সিস্টেমের চেয়ে অবজেক্ট ওরিয়েন্টেড।
স্কালার মিশ্রণগুলি বিবেচনা করুন। এগুলি একটি দুর্দান্ত বৈশিষ্ট্য যা আপনাকে উপাদানগুলির অংশগুলি থেকে একসাথে আপনার অবজেক্টগুলিকে টানতে দেয়। জেনেরিক্স এবং টেমপ্লেটগুলি এর কিছু সুবিধা উপকরণ করতে পারে। উদাহরণস্বরূপ, বলুন যে আপনার একটি বস্তু একটি ডাটাবেস ব্যবহার করে। ভাল ডিজাইনের মাধ্যমে আপনি আলাদা ক্লাসে ডাটাবেস অ্যাক্সেস বাদ দিতে পারবেন। যদি সঠিকভাবে সম্পন্ন হয় এটি আপনাকে কেবলমাত্র আপনার ডেটা-স্টোরকে (টেস্টাবিলিটির মূল চাবিকাঠি) উপহাস করতে দেয় না এর অর্থ হ'ল আপনি সেই নতুন নো-এসকিএল ডাটাবেসের মতো বিকল্প বাস্তবায়নও যুক্ত করতে পারেন। এখানে যদিও, আপনার কোনও সমস্যা হতে পারে, আপনি কোন বাস্তবায়ন ব্যবহার করেন তা বিবেচনা করে আপনি আপনার ব্যবসায়ের বস্তুর বিভিন্ন ক্ষমতা পাবেন।
জেনারিক্স রেসকিউ!
public class Business<S extends Datastore>{
private S store; ...
}
এখন আপনি Business
ডাটাবেস নির্দিষ্ট বৈশিষ্ট্যগুলি ব্যবহারের দক্ষতার উপর ভিত্তি করে স্ট্যাটিকভাবে আপনার অবজেক্টগুলিকে আলাদা করতে শুরু করতে পারেন । আপনার এখনও কিছু রানটাইম চেক এবং ingালাই প্রয়োজন, তবে আপনি আরও ভাল কোড তৈরি করা শুরু করতে পারেন।
এবং
Nor. সাধারণ কোডের অস্তিত্ব নেই।
প্রোগ্রামিং মহাবিশ্বে কেবল তিনটি জিনিস রয়েছে:
- লাইব্রেরি,
- কনফিগারেশন, এবং
- খারাপ কোড
আপনি যদি আপনার কোডটি লাইব্রেরির মতো ভাবেন না তবে আপনার প্রকল্পের প্রয়োজনীয়তার পরিবর্তনের সময় আপনি গুরুতর সমস্যায় পড়বেন। আর্কিটেকচারটি (যুক্তিযুক্তভাবে) ভাল এপিআই ডিজাইনের শিল্প।
আমি এই মনোভাব অত্যাশ্চর্য মনে। প্যারামিট্রাইজড প্রকারের সাথে প্রোগ্রামিংয়ের অভ্যস্ত হওয়ার পরে সেগুলি ব্যবহার না করে সমস্ত কিছুকে ব্যথা করে তোলে। এবং, জাভা এবং সি ++ এর কাছে প্রচুর রুক্ষ দাগ রয়েছে যা তারা প্রতিকারে সহায়তা করে।