আমি এই যুক্তিটি শুনেছি যে আপনার সর্বাধিক জেনেরিক ইন্টারফেসটি ব্যবহার করা উচিত যাতে আপনি সেই ইন্টারফেসটির একটি নির্দিষ্ট প্রয়োগের সাথে আবদ্ধ হন না। এই যুক্তিটি জাভা.ইটিল.ক্লেকশন এর মতো ইন্টারফেসগুলিতে প্রযোজ্য ?
আমি বরং নীচের মত কিছু দেখতে চাই:
List<Foo> getFoos()
অথবা
Set<Foo> getFoos()
পরিবর্তে
Collection<Foo> getFoos()
সর্বশেষ ক্ষেত্রে, আমি জানি না যে আমি কী ধরণের ডেটা সেট নিয়ে কাজ করছি, যদিও প্রথম দুটি ক্ষেত্রে আমি আদেশ এবং স্বতন্ত্রতা সম্পর্কে কিছুটা অনুমান করতে পারি। নেই java.util.Collection উভয় সেট এবং তালিকার জন্য একটি লজিক্যাল পিতা বা মাতা হচ্ছে একটা উপযোগিতা বাহিরে আছে?
কোনও কোড পর্যালোচনা করার সময় আপনি যদি সংগ্রহে নিয়োগকৃত কোডটি জুড়ে এসে পৌঁছে থাকেন , তবে আপনি কীভাবে এটি নির্ধারণ করবেন যে এর ব্যবহারটি ন্যায়সঙ্গত কিনা এবং আরও নির্দিষ্ট ইন্টারফেসের দ্বারা প্রতিস্থাপনের জন্য আপনি কী পরামর্শ করবেন?
Collection<List<?>>
? কোডিং হরর সম্পর্কে কথা!