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

C#-এ ইন্টারফেস সেগ্রিগেশন প্রিন্সিপল (ISP) কী এবং বাস্তবায়ন

ক্লায়েন্টদেরকে এমন ইন্টারফেসের উপর ডিপেন্ড করতে বাধ্য করা উচিত নয় যা তারা ব্যবহার করে না।

ইন্টারফেস সেগ্রিগেশন প্রিন্সিপল বলে, ক্লায়েন্টদেরকে তাদের ব্যবহার না করা ইন্টারফেস ইমপ্লিমেন্ট করতে বাধ্য করা উচিত নয়।

একটি বড় "ফ্যাট" ইন্টারফেসের বদলে অনেক ছোট ইন্টারফেস প্রিয়র, প্রতিটি মেথড গ্রুপের ভিত্তিতে, যারা একটি সাবমডিউল সার্ভ করে।

ইন্টারফেস সেগ্রিগেশন প্রিন্সিপল लागু করার আগে

public interface IProduct
{
    int ID { get; set; }
    double Weight { get; set; }
    int Stock { get; set; }
    int Inseam { get; set; }
    int WaistSize { get; set; }
}
public class Jeans : IProduct
{
    public int ID { get; set; }
    public double Weight { get; set; }
    public int Stock { get; set; }
    public int Inseam { get; set; }
    public int WaistSize { get; set; }
}
public class BaseballCap : IProduct
{
    public int ID { get; set; }
    public double Weight { get; set; }
    public int Stock { get; set; }
    public int Inseam { get; set; }
    public int WaistSize { get; set; }
    public int HatSize { get; set; }
}

সমস্যা: BaseballCap-এ Inseam এবং WaistSize প্রপার্টি অপ্রাসঙ্গিক, কিন্তু বাধ্য হয় ইমপ্লিমেন্ট করতে।

ইন্টারফেস সেগ্রিগেশন প্রিন্সিপল लागু করার পর

public interface IProduct
{
    int ID { get; set; }
    double Weight { get; set; }
    int Stock { get; set; }
}
public interface IPants
{
    int Inseam { get; set; }
    int WaistSize { get; set; }
}
public interface IHat
{
    int HatSize { get; set; }
}
public class Jeans : IProduct, IPants
{
    public int ID { get; set; }
    public double Weight { get; set; }
    public int Stock { get; set; }
    public int Inseam { get; set; }
    public int WaistSize { get; set; }
}
public class BaseballCap : IProduct, IHat
{
    public int ID { get; set; }
    public double Weight { get; set; }
    public int Stock { get; set; }
    public int HatSize { get; set; }
}

ব্যাখ্যা: এখন Jeans শুধু প্যান্ট-সম্পর্কিত ইন্টারফেস ইমপ্লিমেন্ট করে, BaseballCap শুধু হ্যাট-সম্পর্কিত। কমন প্রপার্টিগুলো IProduct-এ রেখে স্পেসিফিক প্রপার্টিগুলো আলাদা ইন্টারফেসে ভাগ করা হয়েছে। এটি ISP অনুপালন।

  1. ট্রিলার: এটি কী এবং কীভাবে ব্যবহার করবেন

  2. MeWe কী এবং এটি কীভাবে ভিন্ন?

  3. "Paint 3D" কী এবং এর ব্যবহার কীভাবে করবেন

  4. BIOS কী এবং কেন আপডেট করবেন: পিসি ফার্মওয়্যার আপডেটের সম্পূর্ণ গাইড