کپسوله‌سازی (Encapsulation) در C#

کپسوله‌سازی یکی از اصول مهم برنامه‌نویسی شیءگرا است که به ما کمک می‌کند داده‌ها را مخفی کنیم و فقط از طریق متدها یا ویژگی‌های کنترل‌شده به آن‌ها دسترسی داشته باشیم.

Encapsulation چیست؟

کپسوله‌سازی یعنی مخفی کردن داده‌های داخلی یک کلاس و کنترل دسترسی به آن‌ها از طریق public members. این کار باعث افزایش امنیت و جلوگیری از تغییرات ناخواسته می‌شود.

استفاده از private field


public class User
{
    private string _name;
    private int _age;

    public void SetName(string name)
    {
        _name = name;
    }

    public string GetName()
    {
        return _name;
    }
}

استفاده از Property (روش استاندارد)

در C# معمولاً به جای متدهای Get/Set از Property استفاده می‌شود.


public class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}

کنترل دسترسی در Property

می‌توان دسترسی به set را محدود کرد.


public class User
{
    public string Name { get; private set; }

    public void ChangeName(string name)
    {
        Name = name;
    }
}

چرا Encapsulation مهم است؟

  • جلوگیری از تغییر مستقیم داده‌ها
  • افزایش امنیت داده‌ها
  • کنترل بهتر روی منطق تغییر state
  • قابلیت نگهداری بهتر کد

مثال واقعی


public class BankAccount
{
    private decimal _balance;

    public void Deposit(decimal amount)
    {
        if (amount > 0)
            _balance += amount;
    }

    public bool Withdraw(decimal amount)
    {
        if (amount > 0 && _balance >= amount)
        {
            _balance -= amount;
            return true;
        }

        return false;
    }

    public decimal GetBalance()
    {
        return _balance;
    }
}

جمع‌بندی

کپسوله‌سازی باعث می‌شود ساختار برنامه امن‌تر، قابل کنترل‌تر و قابل توسعه‌تر باشد. این اصل یکی از پایه‌های اصلی OOP در C# است.