কম্পিউটার টিউটোরিয়াল

C#-এ কোড পুনঃব্যবহারযোগ্য করা (Interfaces ও Polymorphism)

C#-এ কোড পুনঃব্যবহারযোগ্য (reusable) बनाने için Interface এবং Polymorphism প্রধান টুল। ইন্টারফেস কন্ট্রাক্ট ডিফাইন করে, ক্লাসগুলো তা ইমপ্লিমেন্ট করে।

ইন্টারফেস উদাহরণ


public interface IShape
{
    void Display(); // শুধু ডিক্লেরেশন, বডি নেই
    double Area { get; } // প্রোপার্টি
}

// ইন্টারফেস নাম সাধারণত 'I' দিয়ে শুরু হয় (কনভেনশন)

ইমপ্লিমেন্টেশন


public class Circle : IShape
{
    public double Radius { get; set; }
    public double Area => Math.PI * Radius * Radius;
    
    public void Display() => Console.WriteLine($"Circle: Radius={Radius}, Area={Area:F2}");
}

public class Rectangle : IShape
{
    public double Width { get; set; }
    public double Height { get; set; }
    public double Area => Width * Height;
    
    public void Display() => Console.WriteLine($"Rectangle: {Width}x{Height}, Area={Area:F2}");
}

পলিমরফিজম ব্যবহার


var shapes = new List<IShape>
{
    new Circle { Radius = 5 },
    new Rectangle { Width = 4, Height = 6 }
};

foreach (var shape in shapes)
{
    shape.Display(); // রানটাইমে সঠিক মেথড কল হয়
    Console.WriteLine($"Area: {shape.Area}");
}

ইন্টারফেসের সুবিধা

  • Decoupling: ক্লায়েন্ট কোড কনক্রিট ক্লাস না জানেই কাজ করে।
  • Testability: মক (Mock) অবজেক্ট দিয়ে ইউনিট টেস্টিং সহজ।
  • Extensibility: নতুন শেপ যোগ করলে এক্সিস্টিং কোড পরিবর্তন লাগে না (OCP)।
  • Multiple Implementation: একই ইন্টারফেসের একাধিক বাস্তবায়ন সম্ভব।

অন্যান্য পুনঃব্যবহার টেকনিক

  • Abstract Base Class: শেয়ার্ড লজিক + অ্যাবস্ট্রাক্ট মেথড
  • Generics: টাইপ-সেফ রিঅusable কোড
  • Extension Methods: এক্সিস্টিং টাইপে মেথড যোগ
  • Delegates/Func/Action: বিহেভিয়র পাস করা

SOLID nguyênনীতি

ইন্টারফেস ভিত্তিক ডিজাইন Dependency Inversion Principle (DIP) এবং Open/Closed Principle (OCP) পূরণ করে।

  1. QR কোড কীভাবে তৈরি করবেন

  2. Skype-এ বিজ্ঞাপন ব্লক করুন এবং চ্যাট ইন্টারফেস কাস্টমাইজ করুন

  3. C#-এ unsafe কোড কম্পাইল করা

  4. ম্যাকএ C# কোডিং করার উপায়