به دنیای برنامه نویسی من خوش اومدین! اینجا مینویسم تا هم چیزایی که یاد میگیرم رو ثبت کنم، هم باهاتون در ارتباط باشم
🔹کپسولهسازی (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 استفاده میکنن.
مطلبی دیگر از این انتشارات
بهترین framework ها و library های زبان Golang
مطلبی دیگر از این انتشارات
آشنایی با دیزاین پترنها: راهکارهای استاندارد برای حل مسائل برنامهنویسی
مطلبی دیگر از این انتشارات
آشنایی با Compile SDK , Target SDK و Minimum SDK