جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره های آموزشی
    • آموزش کتابخانه Ant Design به سادگی آب خوردن !
    • آموزش ساخت داشبورد حرفه ای با ری اکت !
    • آموزش فریمورک Tailwind CSS به زبان ساده!
    • آموزش HTML و CSS پروژه محور و اصولی !
  • وبلاگ
  • تماس با ما
  • درباره ما
logo-frontendi-150
0
  • خانه
  • دوره ها
  • وبلاگ فِرانت اِندی
  • تماس با ما
ورود / عضویت
  • صفحه اصلی
  • دوره های آموزشی
    • آموزش کتابخانه Ant Design به سادگی آب خوردن !
    • آموزش ساخت داشبورد حرفه ای با ری اکت !
    • آموزش فریمورک Tailwind CSS به زبان ساده!
    • آموزش HTML و CSS پروژه محور و اصولی !
  • وبلاگ
  • تماس با ما
  • درباره ما
ورود / عضویت

وبلاگ

فرانت اندی > وبلاگ فِرانت اِندی > عمومی > شی گرایی چیست و چرا برنامه نویس ها عاشقش هستند؟

شی گرایی چیست و چرا برنامه نویس ها عاشقش هستند؟

26 آبان 1403
ارسال شده توسط احمد احمدنژاد
عمومی
شی گرایی در برنامه نویسی - OOP در برنامه نویسی - شی گرایی چیست ؟ - OOP چیست ؟

شی گرایی (Object-Oriented Programming یا OOP) یکی از مدل های محبوب برنامه نویسیه که تمرکزش روی اشیاء و ارتباط بین اون هاست. این روش باعث میشه کدنویسی راحت تر، قابل فهم تر و سازمان یافته تر باشه.
تو این مقاله میخوایم مفاهیم پایه، اصول مهم و کاربردهای شی گرایی رو بررسی کنیم و ببینیم چرا این روش انقدر پرطرفداره.

مهم نیست چه زبان برنامه نویسی کار میکنید! تو این مقاله اصول و مفاهیم "شی گرایی" رو توضیح میدیم که بین تمامی زبان های برنامه نویسی مشترک هستن.

شی گرایی چیست؟

شی گرایی یک مدل برنامه نویسیه که همه چیز رو به صورت اشیاء (Objects) مدل سازی میکنه. هر چیزی که تو دنیای واقعی میبینیم، میتونه یک شی باشه.
مثلا یک ماشین، یک موبایل یا حتی یک کاربر. این اشیاء توی برنامه خصوصیات (Attributes) و رفتارهایی (Methods) دارن که کمک میکنه شبیه دنیای واقعی عمل کنن.

اصول شی گرایی

برای اینکه بهتر بفهمیم شی گرایی چطوری کار میکنه، باید چهار اصل مهم اون رو یاد بگیریم:

1. کپسوله سازی (Encapsulation)

کپسوله سازی یعنی مخفی کردن اطلاعات داخلی یک شی و دادن دسترسی محدود به بیرون. این اصل به امنیت کد کمک میکنه و باعث میشه پیچیدگی ها پشت صحنه بمونه.

مثال:
فرض کن یه کلاس “کاربر” داری که رمز عبور کاربر رو ذخیره میکنه. نباید کسی بتونه مستقیم به رمز عبور دسترسی داشته باشه. فقط باید متدهایی برای تغییر یا بررسی رمز وجود داشته باشه.

2. وراثت (Inheritance)

وراثت یعنی یک کلاس میتونه خصوصیات و رفتارهای یک کلاس دیگه رو به ارث ببره. این باعث میشه کد کمتر تکرار بشه و ساختار برنامه بهتر بشه.

مثال:
فرض کن یک کلاس “حیوان” داری که ویژگی هایی مثل “راه رفتن” و “خوردن” رو برای تعریف کردیم. حالا میتونی از این کلاس، کلاس های “گربه” و “سگ” بسازی و ویژگی های مخصوص اون ها رو اضافه کنی.
چون حیوانات یکسری خصوصیات مشترک دارن ( مثل راه رفتن، نفس کشیدن، غذا خوردن و .. ) و نیازی نیست برای هر حیوان این خصوصیات رو جدا تعریف کنیم.
اگه یک حیوانی خصوصیت منحصربفردی داشت ( مثل پرواز کردن ) اون خصوصیت رو داخل کلاس حیوان جدید تعریف میکنیم.

3. چندریختی (Polymorphism)

چندریختی یعنی یک متد یا رفتار میتونه در شرایط مختلف، شکل های متفاوتی داشته باشه.

مثال:
فرض کن یک متد به نام “صدا دادن” داری. برای سگ، این متد میتونه “واق واق” باشه و برای گربه “میو میو”.

4. انتزاع (Abstraction)

انتزاع یعنی فقط چیزهایی که مهم هستن رو نشون بدی و جزئیات پیچیده رو مخفی کنی. این اصل کمک میکنه فقط روی چیزهایی که نیاز داری تمرکز کنی.

مثال:
وقتی داری از یک ماشین استفاده میکنی، فقط گاز و ترمز رو میبینی. ولی نمیدونی که توی موتور ماشین چه اتفاقی میفته.

مزایای شی گرایی

شی گرایی مزایای زیادی داره که باعث شده خیلی از برنامه نویس ها به این سبک روی بیارن.

  • کاهش پیچیدگی: چون کد به بخش های کوچکتر (اشیاء) تقسیم میشه.
  • قابلیت استفاده مجدد: میتونی از کلاس ها و کدهای قبلی دوباره استفاده کنی.
  • توسعه و نگهداری راحت تر: تغییر در یک قسمت، روی بقیه بخش ها تاثیر بدی نمیذاره.
  • امنیت بیشتر: اطلاعات حساس مخفی میشه و دسترسی ها محدود میشن.

کاربردهای شی گرایی

شی گرایی توی خیلی از زمینه ها استفاده میشه، از اپلیکیشن های موبایل گرفته تا سیستم های پیچیده. چند نمونه از کاربردهاش:

  • ساخت بازی ها: مثل تعریف شخصیت ها، دشمن ها و محیط.
  • برنامه های مدیریت اطلاعات: مثل سیستم های بانکداری یا مدیریت مشتریان.
  • برنامه های وب: بیشتر فریم ورک های وب مثل Django یا Laravel از شی گرایی استفاده میکنن.

اصول طراحی در شی گرایی

برای اینکه از شی گرایی بهترین استفاده رو ببری، باید به اصول طراحی هم توجه کنی. این اصول بهت کمک میکنن کدی تمیز و قابل نگهداری بنویسی.

1. اصل تک مسئولیت (Single Responsibility Principle)

هر کلاس باید فقط یک وظیفه مشخص داشته باشه. این کار باعث میشه کلاس ها ساده تر باشن.

2. اصل باز و بسته بودن (Open/Closed Principle)

کد باید برای گسترش باز باشه ولی برای تغییر بسته. یعنی بتونی به راحتی قابلیت جدید اضافه کنی بدون اینکه تو کدهای قبلی دست ببری.

3. اصل جایگزینی لیسکوف (Liskov Substitution Principle)

هر کلاسی که از یک کلاس دیگه ارث میبره، باید بتونه جایگزین اون بشه بدون اینکه رفتار سیستم خراب بشه.

4. اصل وابستگی معکوس (Dependency Inversion Principle)

کد باید به مفاهیم کلی وابسته باشه نه جزئیات. اینطوری تغییرات جزئی تاثیر کمتری روی کل سیستم دارن.

معایب شی گرایی

با اینکه شی گرایی خیلی جذاب و کاربردیه، ولی معایبی هم داره که باید بهشون توجه کنی:

  • پیچیدگی در یادگیری: برای مبتدی ها ممکنه سخت باشه.
  • مصرف بیشتر منابع: چون کد پیچیده تره، ممکنه حافظه بیشتری مصرف کنه.
  • زمان بر بودن: طراحی کلاس ها و روابط بین اون ها زمان بیشتری نسبت به روش های ساده تر میبره.

نتیجه گیری

شی گرایی یکی از روش های قدرتمند برنامه نویسیه که به برنامه نویس ها کمک میکنه کدی سازمان یافته تر، امن تر و قابل گسترش تر بنویسن.
یادگیری این روش، اگرچه ممکنه زمان بر باشه، اما مزایای بلندمدتی داره که ارزشش رو داره. حالا که با مفاهیم و اصول شی گرایی آشنا شدی، وقتشه دست به کدنویسی بزنی و این مفاهیم رو تو پروژه هات پیاده کنی.

درباره احمد احمدنژاد

من یه برنامه نویس و توسعه دهنده وب هستم که عاشق دنیای صفر و یکم❤️

نوشته‌های بیشتر از احمد احمدنژاد
قبلی آموزش Sentry در React: ردیابی و مدیریت خطا ها مثل حرفه ای ها!
بعدی 200 سوال مصاحبه جاوااسکریپت! بزرگترین لیست سوالات مصاحبه جاوااسکریپت !

پست های مرتبط

هوش مصنوعی DeepSeek - مدل Deepseek v3 - هوش مصنوعی DeepSeek V3 چیست

13 دی 1403

با هوش مصنوعی DeepSeek هوشمندانه تر کد بزنیم 🚀 🔥

احمد احمدنژاد
ادامه مطلب
کتابخانه Material UI در ری اکت - Material UI در ریکت - Material UI در react - کتابخانه Material UI - کتابخانه MUI در ری اکت - MUI در ریکت - MUI در React - آموزش Material UI - آموزش MUI - نصب MUI - متریال یو آی

13 آذر 1402

بررسی کتابخانه Material UI در ری اکت !

احمد احمدنژاد
ادامه مطلب
JSX ری اکت

12 آذر 1402

آموزش JSX در ری اکت !

احمد احمدنژاد
ادامه مطلب
useNavigate در ری اکت - useNavigate در React - هوک useNavigate - ریدایرکت کاربران در ری اکت - ریدایرکت در React Router DOM

28 آبان 1402

آموزش هوک useNavigate در ری اکت !

احمد احمدنژاد
ادامه مطلب
Fragment در ری اکت - Fragment در React - آموزش Fragment در ری اکت - React.Fragment

28 آبان 1402

آموزش ویژگی Fragment در ری اکت !

احمد احمدنژاد
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
پیاده سازی و مشاوره فِرانت اِند!

پیاده سازی اصولی و بهینه پروژه های فِرانت اِند در کمترین زمان ممکن 🙂

پیاده سازی و مشاوره

صفحات فِرانت اِندی
  • وبلاگ
  • تماس با ما
  • درباره ما
تماس با ما
  • [email protected]
  • 09102944692
شبکه های اجتماعی
Youtube Instagram Telegram