اصول اصلی برنامه نویسی شیء گرا و مفهوم کلی آن
مفهوم شیءگرایی و اصول آن
شیءگرایی یکی از اصول مهم برنامهنویسی است که به برنامهنویسان این امکان را میدهد کد منظم، قابل نگهداری و قابل توسعهتری ایجاد کنند. این مهارت مفهومی است که در بسیاری از زبانها و فریمورکهای برنامهنویسی تأکید دارد. در این مقاله، به مفهوم شیءگرایی و اصول آن میپردازیم.
مفهوم شیءگرایی:
شیءگرایی (Object-Oriented Programming یا به اختصار OOP) یک رویکرد برنامهنویسی است که بر پایه مفهوم اشیاء (Objects) و روابط بین آنها بنا شده است. در OOP، برنامه به شکل مجموعهای از اشیاء دیده میشود، هر کدام دارای ویژگیها (Properties) و روشها (Methods) خاص به خود هستند.
این اشیاء میتوانند تعامل کنند و اطلاعات را در کپسولهسازی کرده و در اختیار برنامهنویسان قرار دهند. OOP تا حد زیادی از انتزاع و مدیریت پیچیدگی کد کمک میکند و کد قابل توسعهتر و قابل نگهداریتری فراهم میکند.
اصول اصلی شیءگرایی:
- انتزاع (Abstraction): انتزاع به معنای مخفی کردن جزئیات پیچیده و تکنیکی از یک شیء و تنها نمایش ویژگیها و روشهای مهم آن است. این اصل به برنامهنویسان این امکان را میدهد که به عناصر اصلی و مهم تمرکز کنند و از جزئیات پنهان شدهای که نیاز به دانستن دقیق آنها نیست، چشمپوشی کنند.
- تورفتگی (Encapsulation): تورفتگی به معنای ترتیب دادن و محدود کردن دسترسی به ویژگیها و روشهای یک شیء است. در OOP، شیء میتواند اطلاعات خود را در کپسولی محافظتشده نگه دارد و تنها از طریق روشهای معین به این اطلاعات دسترسی داشته باشد. این اصل از نظر امنیت و قابلیت تعمیر و توسعه کد بسیار مهم است.
- وراثت (Inheritance): وراثت به معنای ارثبری و اشتقاق ویژگیها و روشها از یک کلاس (یا شیء پدر) به یک کلاس دیگر (یا شیء فرزند) است. این اصل به برنامهنویسان این امکان را میدهد که کدهای تکراری را کاهش دهند و از انتزاع بهرهبری کنند.
- پلیمورفیسم (Polymorphism): پلیمورفیسم به معنای این است که یک روش میتواند به صورت متفاوت در اشیاء مختلف عمل کند. این اصل به برنامهنویسان این امکان را میدهد تا روشهای مشابه را با نامهای یکسان فراخوانی کنند و بسته به نوع شیء فعلی، عملکرد متفاوتی اجرا شود.
- یکپارچگی (Coherence): یکپارچگی به معنای ارتباط و هماهنگی میان شیءها و کلاسها در یک برنامه است. برنامهنویسان باید توجه داشته باشند که چگونه اشیاء مختلف با یکدیگر تعامل میکنند و چگونه ارتباطات وابسته بین آنها تعیین میشوند.
- استفاده از کپسولهسازی (Use of Encapsulation): این اصل برنامهنویسان را تشویق میکند تا از تورفتگی و کپسولهسازی استفاده کنند تا اطلاعات مربوط به یک شیء را محافظت کنند و تا حد ممکن از دسترسی مستقیم به آنها جلوگیری کنند.
- جداکردن وظایف (Separation of Concerns): این اصل به برنامهنویسان توصیه میکند که وظایف مختلف برنامه را به بخشهای مستقل تقسیم کنند تا کد به شکل منطقیتر و قابل مدیریتتری انجام شود. به عنوان مثال، جداکردن وظایف نمایشی از وظایف محاسباتی.
شیءگرایی یکی از اصول اساسی در برنامهنویسی است که به برنامهنویسان این امکان را میدهد که کدهای ساختار یافته، قابل توسعه و قابل نگهداریتری ایجاد کنند. با توجه به اصول فوق، برنامهنویسان میتوانند برنامهها و سیستمهای پیچیدهتری را بسازند و مشکلات کد را کاهش دهند و کیفیت کد را ارتقاء دهند.
ایجاد کلاسها و اشیاء در برنامهنویسی شیءگرا
برنامهنویسی شیءگرا یکی از مهارتهای اساسی در دنیای برنامهنویسی است که به برنامهنویسان این امکان را میدهد تا کدهای منظم، ساختارمند و قابل نگهداری ایجاد کنند.
از طریق ایجاد کلاسها و اشیاء، برنامهنویسان میتوانند ویژگیها و عملکردهای مرتبط را به یکدیگر گروهبندی کرده و کد خود را به شکلی سازمانیافته و قابل توسعه ایجاد کنند. در این مقاله، به مفاهیم ایجاد کلاسها و اشیاء در برنامهنویسی شیءگرا میپردازیم.
مفهوم کلاس:
کلاس در برنامهنویسی شیءگرا به عنوان یک الگوی تعریف شیء استفاده میشود. کلاس مشخص میکند که یک شیء چه ویژگیها و رفتارهایی دارد. به عبارت دیگر، کلاس تعیین میکند که یک شیء از نوع چه چیزی است و چه عملکردهایی را انجام میدهد.
ایجاد کلاس:
برای ایجاد یک کلاس در برنامهنویسی شیءگرا، از کلمه کلیدی class استفاده میشود. ساختار کلی تعریف کلاس به صورت زیر است:
class ClassName { // ویژگیها (Properties) constructor() { // متد سازنده (Constructor) } // متدها (Methods) }
- ویژگیها (Properties): ویژگیها و ویژگیهای کلاس به عنوان متغیرها برای ذخیره اطلاعات در کلاس تعریف میشوند.
- متد سازنده (Constructor): متد سازنده یک متد ویژه است که وقتی یک شیء از کلاس ایجاد میشود، اجرا میشود. معمولاً برای مقداردهی اولیه به ویژگیهای کلاس استفاده میشود.
- متدها (Methods): متدها عملکردهایی هستند که توسط شیء از کلاس انجام میشوند. این متدها میتوانند اطلاعات را پردازش کرده و ویژگیها را تغییر دهند.
ایجاد اشیاء:
بعد از تعریف یک کلاس، میتوانید اشیاء (Instances) از آن کلاس ایجاد کنید. اشیاء به عبارت دیگر نمونههایی از کلاس هستند و ویژگیها و متدهای کلاس را به ارث میبرند. برای ایجاد یک شیء از یک کلاس، از عبارت new استفاده میشود.
let objectName = new ClassName();
مثال عملی:
حالا بیایید یک مثال ساده از ایجاد کلاس و اشیاء در JavaScript را بررسی کنیم:
class Person { constructor(name, age) { this.name = name; this.age = age; } sayHello() { console.log(`سلام! من ${this.name} هستم و ${this.age} سال دارم.`); } } let person1 = new Person(“آلیس”, 25); let person2 = new Person(“باب”, 30); person1.sayHello(); // خروجی: سلام! من آلیس هستم و 25 سال دارم. person2.sayHello(); // خروجی: سلام! من باب هستم و 30 سال دارم.
در این مثال، ما یک کلاس به نام Person تعریف کردهایم که دو ویژگی name و age را دارد و یک متد به نام sayHello که اطلاعات فرد را چاپ میکند. سپس دو شیء از این کلاس ایجاد کردهایم و از آنها برای فراخوانی متد sayHello استفاده کردهایم.
ایجاد کلاسها و اشیاء یکی از مفاهیم اساسی در برنامهنویسی شیءگرا است که به برنامهنویسان این امکان را میدهد که کد منظم و سازمانیافتهتری ایجاد کنند. این اصل از نظر قابلیت توسعه و نگهداری کد بسیار مهم است و به توسعهدهندگان این امکان را میدهد که به طور مؤثر در تولید نرمافزارهای پیچیدهتر و کارآمدتر شرکت کنند.