
کپسولهسازی یعنی پنهان کردن جزئیات داخلی کلاس (مثل دادهها) از بیرون و فقط اجازه دسترسی کنترلشده به اونا. مثل اینه که دادههای مهم رو تو یه جعبه بذاری و فقط با کلیدهای خاص بتونی بازشون کنی. این کار امنیت و مدیریت کد رو بهتر میکنه و از تغییرات ناخواسته جلوگیری میکنه.
مدیریت دسترسی: تو دارت، ویژگیها و متدها بهصورت پیشفرض عمومی (public) هستن.
خصوصی (Private): با گذاشتن علامت _ (آندرلاین) قبل اسم، ویژگی یا متد رو خصوصی میکنی. یعنی فقط داخل همون کلاس یا فایل قابل دسترسیه.
گتر و ستر (Getters & Setters): برای دسترسی کنترلشده به ویژگیهای خصوصی، از متدهای getter (برای خواندن) و setter (برای نوشتن) استفاده میکنی.
نکته: تو دارت، خصوصی بودن بر اساس فایل هست (library-level)، نه کلاس.
class BankAccount { double _balance; // خصوصی BankAccount(this._balance); double get balance => _balance; // getter set deposit(double amount) { if (amount > 0) _balance += amount; } } void main() { var account = BankAccount(1000); account.deposit = 500; print(account.balance); // 1500 }
تو فلاتر، برای مدیریت حالتها (state) و دادههای ویجتها استفاده میشه. مثلاً ویژگیهای داخلی یه ویجت رو خصوصی کن تا بیرون نتونه مستقیم تغییرشون بده.
مثال: تو کلاسهای مدل داده (مثل کاربر یا محصول)، دادههای حساس رو خصوصی کن و با getter/setter دسترسی بده تا اپت امنتر بشه.
جلوگیری از دسترسی مستقیم به دادهها (data hiding).
getter/setter برای دسترسی کنترلشده.
کد رو ماژولار و آسانتر برای نگهداری میکنه.
تو فلاتر، کلاسهای ویجت مثل StatefulWidget از این مفهوم برای مدیریت state استفاده میکنن.