برنامه‌نویسی شیءگرا در JavaScript: یک راهنمای کامل

نوشتن کد برای پروژه‌های کوچک آسان است. اما مدیریت کد برای اپلیکیشن‌های بزرگ دشوار است.

من این موضوع را هنگام ساخت یک اپلیکیشن کوییز (Quiz App) و یک رابط کاربری بانکداری موبایلی (Mobile Banking UI) یاد گرفتم. در ابتدا توابع و اشیاء ساده کار می‌کردند، اما با اضافه کردن ویژگی‌های جدید، کدها نامنظم شدند. استفاده مجدد از آن‌ها سخت و اصلاح آن‌ها حتی سخت‌تر بود.

اینجاست که برنامه‌نویسی شیءگرا (OOP) همه چیز را تغییر داد.

OOP کد را به جای توابع، حول محور اشیاء سازماندهی می‌کند. یک شیء شامل داده‌ها (properties) و اقدامات (methods) است.

یک ماشین را تصور کنید. ماشین ویژگی‌هایی مثل رنگ و برند دارد و اقداماتی مثل استارت زدن و توقف کردن.

در اینجا مفاهیم اصلی که باید بدانید آورده شده است:

کلاس‌ها و اشیاء (Classes and Objects) کلاس یک نقشه (blueprint) است. شیء، همان چیزی است که شما از روی آن نقشه می‌سازید.

سازنده‌ها (Constructors) سازنده یک متد خاص است. این متد هنگام ایجاد یک شیء جدید، به‌طور خودکار برای تنظیم داده‌های آن اجرا می‌شود.

وراثت (Inheritance) این ویژگی به یک کلاس اجازه می‌دهد تا ویژگی‌های کلاس دیگری را به ارث ببرد. این کار از نوشتن تکراری یک کد جلوگیری می‌کند. برای فراخوانی کلاس والد از کلمه کلیدی super() استفاده کنید.

کپسوله‌سازی (Encapsulation) این مفهوم داده‌ها را ایمن نگه می‌دارد. شما جزئیات داخلی را پنهان می‌کنید و فقط آنچه لازم است را نمایش می‌دهید. در JavaScript از نماد # برای خصوصی (private) کردن فیلدها استفاده کنید.

انتزاع (Abstraction) این مفهوم منطق پیچیده را پنهان می‌کند. شما بدون نیاز به دانستن نحوه کارکرد چرخ‌دنده‌های داخلی، با یک رابط کاربری ساده تعامل خواهید داشت.

چندریختی (Polymorphism) این ویژگی به کلاس‌های مختلف اجازه می‌دهد از نام متد یکسان استفاده کنند اما اقدامات متفاوتی انجام دهند. مثلاً یک حیوان ممکن است پارس کند، در حالی که حیوان دیگر میو می‌کند.

گترها و سترها (Getters and Setters) این‌ها به شما کمک می‌کنند تا نحوه دسترسی یا تغییر داده‌ها توسط دیگران را کنترل کنید.

چرا از OOP استفاده کنیم؟

تسلط بر این ستون‌ها از شما توسعه‌دهنده بهتری می‌سازد. سعی کنید این مفاهیم را در پروژه بعدی خود (مثل داشبورد یا فروشگاه آنلاین) به کار ببرید.

منبع: https://dev.to/rafsan-jany-ratul/object-oriented-programming-oop-in-javascript-a-complete-guide-with-real-world-examples-4l54