বিভিন্ন স্ট্যাক ওভারফ্লো প্রশ্ন এবং অন্যের কোড পড়ার সময় ক্লাসগুলি কীভাবে ডিজাইন করা যায় তার সাধারণ conকমত্য বন্ধ রয়েছে। এর অর্থ হল জাভা এবং সি # তে ডিফল্টভাবে সমস্ত কিছু ব্যক্তিগত, ক্ষেত্রগুলি চূড়ান্ত, কিছু পদ্ধতি চূড়ান্ত এবং কখনও কখনও ক্লাসগুলি এমনকি চূড়ান্ত হয় ।
এর পিছনে ধারণাটি বাস্তবায়নের বিশদটি গোপন করা, এটি খুব ভাল কারণ। তবে protectedবেশিরভাগ ওওপি ভাষা এবং বহুকর্মের অস্তিত্বের সাথে , এটি কার্যকর হয় না।
আমি যখনই ক্লাসে ক্রিয়াকলাপ যুক্ত করতে বা পরিবর্তন করতে চাই তখনই আমি সাধারণত ব্যক্তিগত এবং চূড়ান্তভাবে সর্বত্রই বাধা হয়ে থাকি। এখানে বাস্তবায়নের বিশদগুলি গুরুত্বপূর্ণ: আপনি পরিণতিগুলি কী হতে পারে তা ভালভাবে জেনে আপনি বাস্তবায়নটি গ্রহণ করছেন এবং এটি প্রসারিত করছেন। তবে আমি ব্যক্তিগত এবং চূড়ান্ত ক্ষেত্র এবং পদ্ধতিগুলিতে অ্যাক্সেস পেতে পারি না বলে আমার কাছে তিনটি বিকল্প রয়েছে:
- ক্লাসটি প্রসারিত করবেন না, কেবল কোডটিকে আরও জটিল করে তোলার সমস্যার সমাধান করুন
- পুরো ক্লাসটি অনুলিপি করুন এবং কোড পুনরায় ব্যবহারযোগ্যতা হ্রাস করুন paste
- প্রকল্পটি কাঁটাচামচ করুন
এগুলি ভাল বিকল্প নয়। protectedএটি সমর্থন করে এমন ভাষায় লিখিত প্রকল্পগুলিতে কেন ব্যবহার করা হচ্ছে না ? কিছু প্রকল্প কেন তাদের ক্লাস থেকে উত্তরাধিকার সূত্রে নিষিদ্ধ করে?