আমি মাস্টার C # এর চেষ্টা প্রক্রিয়ায় বর্তমানে am, তাই আমি পরছি অভিযোজিত কোড C # এর মাধ্যমে দ্বারা গ্যারি ম্যাকলিন হল ।
তিনি নিদর্শন এবং বিরোধী নিদর্শন সম্পর্কে লিখেন। ইন্টারফেস অংশ বনাম বাস্তবায়নে তিনি নিম্নলিখিত লিখেছেন:
ইন্টারফেসে প্রোগ্রামিং ধারণার ক্ষেত্রে নতুন বিকাশকারীদের প্রায়শই ইন্টারফেসের পিছনে যা আছে তা ছাড়তে অসুবিধা হয়।
সংকলনের সময়, কোনও ইন্টারফেসের যে কোনও ক্লায়েন্টের ইন্টারফেসটি কোনটি ব্যবহার করছে তা প্রয়োগ করা উচিত। এই ধরনের জ্ঞান ভুল অনুমানের দিকে নিয়ে যেতে পারে যা ক্লায়েন্টকে ইন্টারফেসের একটি নির্দিষ্ট প্রয়োগের সাথে জুড়ে দেয়।
সাধারণ উদাহরণটি কল্পনা করুন যেখানে অবিচ্ছিন্ন স্টোরেজে কোনও শ্রেণীর রেকর্ড সংরক্ষণ করা দরকার। এটি করার জন্য, এটি যথাযথভাবে একটি ইন্টারফেসে উপস্থিত হয়, যা ব্যবহৃত ধ্রুবক স্টোরেজ প্রক্রিয়াটির বিশদটি গোপন করে। যাইহোক, ইন্টারফেসটি প্রয়োগের সময় সঞ্চালনের সময় ব্যবহার করা হচ্ছে সে সম্পর্কে কোনও অনুমান করা ঠিক হবে না। উদাহরণস্বরূপ, কোনও প্রয়োগের জন্য ইন্টারফেসের রেফারেন্স castালাই সর্বদা একটি খারাপ ধারণা।
এটি ভাষার বাধা বা আমার অভিজ্ঞতার অভাব হতে পারে, তবে এর অর্থ কী তা আমি যথেষ্ট বুঝতে পারি না। আমি যা বুঝি তা এখানে:
সি # অনুশীলনের জন্য আমার ফ্রি টাইম মজাদার প্রকল্প রয়েছে। সেখানে আমার একটি ক্লাস রয়েছে:
public class SomeClass...
এই শ্রেণিটি অনেক জায়গায় ব্যবহৃত হয়। সি # শিখার সময়, আমি পড়লাম যে কোনও ইন্টারফেসের সাথে বিমূর্ত করা ভাল, তাই আমি নিম্নলিখিতটি তৈরি করেছি
public interface ISomeClass <- Here I made a "contract" of all the public methods and properties SomeClass needs to have.
public class SomeClass : ISomeClass <- Same as before. All implementation here.
তাই আমি সমস্ত কিছু শ্রেণীর রেফারেন্সে গিয়ে আইসোম ক্লাসের সাথে তাদের প্রতিস্থাপন করেছি।
নির্মাণ ব্যতীত, যেখানে আমি লিখেছি:
ISomeClass myClass = new SomeClass();
আমি কি সঠিকভাবে বুঝতে পারি যে এটি ভুল? যদি হ্যাঁ, তবে কেন, এবং এর পরিবর্তে আমার কী করা উচিত?
ISomeClass myClass = new SomeClass();
? আপনি যদি সত্যিই বোঝাতে চান তবে এটি কনস্ট্রাক্টরের পুনরাবৃত্তি, সম্ভবত আপনি যা চান তা না। আশা করি আপনি "নির্মাণ" অর্থ বরাদ্দ, সম্ভবত, তবে কনস্ট্রাক্টর নিজেই নয়, ঠিক ?
ISomeClass
) তবে খুব সাধারণ ইন্টারফেস করাও সহজ, যার জন্য কার্যকর কোডটি লিখতে অসম্ভব যে একমাত্র বিকল্পগুলির বিরুদ্ধে ইন্টারফেসটি পুনর্বিবেচনা করা এবং কোডটি পুনরায় লিখতে বা ডাউনকাস্ট করতে হয়।