آشنایی با مفهوم شی گرایی، نکاتی که هرگز نشنیده اید

آشنایی با مفهوم شی گرایی، نکاتی که هرگز نشنیده اید
تاریخ بروزرسانی : 12 خرداد 1398 | تعداد بازدید : 12834 | زمان خواندن مقاله : 4
پیرامون برنامه نویسی،
در این مقاله قصد داریم افرادی را که در آستانه آشنایی با مفاهیم برنامه نویسی هستند با برنامه نویسی شی گرا و مفهوم شی گرایی آشنا کنیم با ما همراه باشید.

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

این در حالیست که در مدل های قبلی برنامه نویسی تاکید برنامه نویسی بر روی منطق و الگوریتم های منطقی بود نه داده های درون منطق. به نظر می رسد برنامه نویسی شی گرا به دلیل انعطاف پذیری بالا در بین برنامه نویسان محبوبیت بیشتری را کسب کرده  است.
در این مدل از برنامه نویسی، اولین گام برای برنامه نویس شناسایی اشیایی است که برنامه نویس می خواهد در طول برنامه آنها را دستکاری کند.  هنگامی که یک شی شناخته شد کلاسی از اشیا برای آن ساخته می شود که شامل انواع داده ای که می تواند این توالی منطقی را دستکاری کند می شود.
 
🎊هدیه ما به شما🎊: آموزش شی گرایی، دوره ای رایگان و پروژه محور برای علاقه مندان به مباحث شی گرایی😉
 
بنابراین برنامه نویسی شی گرا بر روی اشیایی که توسعه دهندگان می توانند دستکاری کنند متمرکز می شود نه بر روی منطق آنها . این رویکرد در برنامه نویسی برای برنامه های بزرگ و پیچیده بسیار کاربردی است زیرا می توانیم یک پروژه بزرگ را به بخش های کوچکتر تقسیم کرده و به صورت گروهی روی یک پروژه پیچیده و بزرگ کار کرد.

اصول برنامه نویسی شی گرا:

 برنامه نویسی شی گرا بر اساس چهار اصل زیر شکل گرفته است:شی گرایی- کپسوله سازی

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

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

 

  1. انتزاع (Abstraction):

با خاصیت abstraction، در برنامه نویسی شی گرا در بدنه اصلی هیچ کدی نوشته نمی شود و به همین دلیل نمی توانیم مستقیما از روی کلاس های انتزاعی اشیا را بسازیم. مفهوم انتزاعی چون کد مشخصی ندارد به برنامه نویسان کمک می کند تا به راحتی بتوانند تغییرات و افزودنی های خود را در طول زمان انجام دهند.  برای مثال اگر در برنامه ای متد چاپ یا PRINT() داشته باشیم می توانیم بدنه این متد را تعریف نکنیم. سپس کلاس های فرزند از این متد بسازیم و کدهای بدنه را در این کلاس های فرزند تعریف کنیم و به راحتی از آنها شی بسازیم.

 

  1.  ارث بری و وراثت (Inheritance):شی گرایی- ارث بری

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

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

 

 

  1.  چندریختی (Polymorphism):شی گرایی-چند ریختی

با استفاده از مفهوم چند ریختی به راحتی می توانیم یک متد عمومی تعریف کرده که هربار  ورودی های متفاوتی داشته باشد. برای مثال اگر حیوانات را اشیا در نظر بگیریم همه حیوانات غذا می خورند پس می توانیم یک متد به نام FOOD() برای آنها در نظر گرفت اما باید به این نکته دقت داشت که همه حیوانات غذاهای یکسانی نمی خورند. بنابراین متد FOOD() می تواند هربار و برای هرکدام از حیوانات با ورودی های متفاوتی استفاده شود.

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

 

 

زبان های برنامه نویسی شی گرا:

زبان برنامه نویسی جاوا(Java):زبان برنامه نویسی جاوا

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

 
 

زبان برنامه نویسی پایتون(Python):  زبان برنامه نویسی پایتون

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

برای یادگیری این زبان قدرتمند میتوانید به صورت رایگان به دوره آموزش پایتون در سایت درسمن دسترسی داشته باشید.

 
 

زبان برنامه نویسی سی شارپ(#C):زبان برنامه نویسی سی شارپ

سی شارپ یک زبان برنامه نویسی شی گرا می باشد، این زبان بسیار کاربردی و تمام نشدنی است به دلیل اینکه نسخه های جدید آن توسط  مایکروسافت ارائه می شود و هر نسخه جدید دارای قابلیت های جدیدی می باشد.

اگر هنوز زبان برنامه نویسی خود را انتخاب نکرده اید فرصت را از دست ندهید و به دوره آموزش سی شارپ ما سربزنید.

 

زبان برنامه نویسی (++C):زبان برنامه نویسی سی پلاس پلاس

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

 

زبان برنامه نویسی (Visual Basic .NET): زبان برنامه نویسی ویژوال بیسیک دات نت

ویژوال بیسیک دات نت (VB.NET یا VB .NET) یک نسخه ویژوال بیسیک مایکروسافت است که به عنوان بخشی از گروه محصول گروه دات نت طراحی شده است تا طراحی برنامه های کاربردی وب و اصطلاحا طراحی سایت را آسانتر کند. VB.NET اولین نسخه کامل برنامه نویسی شی گرا (ویژوال بیسیک) است و به همین ترتیب از مفاهیم OOP مانند انتزاع، ارث، پلی مورفیسم و تجمع پشتیبانی می کند.

 

زبان برنامه نویسی (Ruby):زبان برنامه نویسی Ruby

این زبان برنامه نویسی دارای طراحی ساده، کامل و قابل انعطاف است که بیشتر در محیط لینوکس توسعه می یابد ولیکن در اکثر پلت فرم ها اجرا می شود. این زبان برنامه نویسی معمولا طرفداران زیادی دارد که معتقدند هرکسی که با هر زبان برنامه نویسی مدرن آشنایی داشته باشد به راحتی می تواند کدهای نوشته شده در Rubby را متوجه شود.

 

زبان برنامه نویسی (Scala): زبان برنامه نویسی Scala

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

 

زبان برنامه نویسی (php):زبان برنامه نویسی php

یک زبان برنامه نویسی اسکرسپتی اس که کدهای آن سمت سرور اجرا می شوند. این زبان برنامه نویسی صرفا برای طراحی سایت و توسعه صفحات وب مورد استفاده قرار می گیرد که از کلیه مفاهیم شی گرایی پشتیبانی می کند. دارای ویژگی OPENSOURCE است و همین ویژگی باعث شده که این زبان برنامه نویسی از انعطاف پذیری بالایی برخوردار باشد.

 

انتقاد از برنامه نویسی شی گرا:

ایده برنامه نویسی شی گرا به دلایل مختلف توسط توسعه دهندگان مورد انتقاد قرار گرفته است. بزرگترین نگرانی برنامه نویسان از این است که OOP اجزء داده های توسعه نرم افزار را بیش از حد مورد توجه قرار می دهد و به اندازه کافی در محاسبات یا الگوریتم ها تمرکز نمی کند. علاوه بر این، کد OOP ممکن است پیچیده و برای نوشتن و کامپایل طولانی تر باشد. روش های جایگزین برای OOP عبارتند از برنامه نویسی کاربردی، برنامه نویسی ساختار یافته و برنامه نویسی ضروری، اما بیشتر زبان های برنامه نویسی پیشرفته به توسعه دهندگان این امکان را می دهند که آنها را ترکیب کنند.

 


کلمات کلیدی :
برنامه نویسی شی گرا