آموزش جاوا اسکریپت پیشرفته : برنامهنویسی شیءگرا
برنامهنویسی شیءگرا (OOP) یک الگوی برنامهنویسی است که برای بسیاری از زبانهای برنامهنویسی، از جمله جاوا و C پلاس پلاس، اساسی است. در این مقاله، مروری بر مفاهیم اساسی OOP ارائه خواهیم داد. سه مفهوم اصلی را شرح خواهیم داد: کلاسها و نمونهها، وراثت و کپسولهسازی. فعلاً، این مفاهیم را بدون اشاره به جاوا اسکریپت به طور خاص شرح خواهیم داد، بنابراین تمام مثالها در شبهکد ارائه شدهاند.
به طور دقیق، ویژگیهای شرح داده شده در اینجا مربوط به سبک خاصی از OOP به نام OOP مبتنی بر کلاس یا "کلاسیک" هستند. وقتی مردم در مورد OOP صحبت میکنند، معمولاً منظورشان این نوع است.
پس از آن، در جاوا اسکریپت، به چگونگی ارتباط سازندهها و زنجیره نمونه اولیه با این مفاهیم OOP و تفاوت آنها خواهیم پرداخت. در مقاله بعدی، به برخی از ویژگیهای اضافی جاوا اسکریپت که پیادهسازی برنامههای شیگرا را آسانتر میکنند، خواهیم پرداخت.
برنامهنویسی شیءگرا در مورد مدلسازی یک سیستم به عنوان مجموعهای از اشیاء است که در آن هر شیء نمایانگر جنبه خاصی از سیستم است. اشیاء شامل توابع (یا متدها) و دادهها هستند. یک شیء یک رابط عمومی برای کد دیگری که میخواهد از آن استفاده کند فراهم میکند، اما حالت خصوصی و داخلی خود را حفظ میکند. سایر بخشهای سیستم نیازی به توجه به آنچه درون شیء میگذرد، ندارند.
وقتی ما یک مسئله را بر اساس اشیاء در OOP مدلسازی میکنیم، تعاریف انتزاعی ایجاد میکنیم که نشاندهنده انواع اشیاء مورد نظر ما در سیستم ما هستند. به عنوان مثال، اگر ما یک مدرسه را مدلسازی میکردیم، ممکن است بخواهیم اشیاء نمایانگر اساتید داشته باشیم. هر استاد دارای برخی ویژگیهای مشترک است: همه آنها یک نام و یک موضوع دارند که تدریس میکنند. علاوه بر این، هر استاد میتواند کارهای خاصی انجام دهد: به عنوان مثال، همه آنها میتوانند یک مقاله را تصحیح کنند و میتوانند خود را در ابتدای سال به دانشجویان خود معرفی کنند.
بنابراین، استاد میتواند یک کلاس در سیستم ما باشد. تعریف کلاس، دادهها و روشهایی را که هر استاد دارد، فهرست میکند.
در شبهکد، یک کلاس استاد میتواند به این صورت نوشته شود:
این یک کلاس استاد را با موارد زیر تعریف میکند:
دو ویژگی داده: name و teachs
دو متد: برای نمرهدهی به یک مقاله و برای معرفی خودشان.
یک کلاس به خودی خود هیچ کاری انجام نمیدهد: این نوعی الگو برای ایجاد اشیاء عینی از آن نوع است. هر استاد عینی که ایجاد میکنیم، نمونهای از کلاس استاد نامیده میشود. فرآیند ایجاد یک نمونه توسط یک تابع خاص به نام سازنده انجام میشود. ما مقادیری را برای هر حالت داخلی که میخواهیم در نمونه جدید مقداردهی اولیه کنیم، به سازنده ارسال میکنیم.
به طور کلی، سازنده به عنوان بخشی از تعریف کلاس نوشته میشود و معمولاً نامی مشابه خود کلاس دارد: