به دنیای برنامه نویسی من خوش اومدین! اینجا مینویسم تا هم چیزایی که یاد میگیرم رو ثبت کنم، هم باهاتون در ارتباط باشم
🔹کپسولهسازی (Encapsulation) در شیگرایی با فلاتر

⚡️کپسولهسازی چیه؟
کپسولهسازی یعنی پنهان کردن جزئیات داخلی کلاس (مثل دادهها) از بیرون و فقط اجازه دسترسی کنترلشده به اونا. مثل اینه که دادههای مهم رو تو یه جعبه بذاری و فقط با کلیدهای خاص بتونی بازشون کنی. این کار امنیت و مدیریت کد رو بهتر میکنه و از تغییرات ناخواسته جلوگیری میکنه.
⚡️چطور تو دارت/فلاتر کار میکنه؟
مدیریت دسترسی: تو دارت، ویژگیها و متدها بهصورت پیشفرض عمومی (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 استفاده میکنن.
مطلبی دیگر از این انتشارات
پشتپرده رندرینگ مرورگر از صفر تا یک
مطلبی دیگر از این انتشارات
مهمترین مهارت های لازم برای پیشرفت در برنامه نویسی
مطلبی دیگر از این انتشارات
الگوریتم پیدا کردن کوتاه ترین مسیر در گراف غیر هم وزن