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

تاریخ بروزرسانی : یکشنبه 12 خرداد 1398

تعداد بازدید : 4728

زمان خواندن مقاله : 4

در این مقاله قصد داریم افرادی را که در آستانه آشنایی با مفاهیم برنامه نویسی هستند با برنامه نویسی شی گرا و مفهوم شی گرایی آشنا کنیم با ما همراه باشید.

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

آشنایی با مفاهیم شی گرایی

در این مقاله قصد داریم افرادی را که در آستانه آشنایی با مفاهیم برنامه نویسی هستند با برنامه نویسی شی گرا و مفهوم شی گرایی آشنا کنیم با ما همراه باشید.

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

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

بنابراین برنامه نویسی شی گرا بر روی اشیایی که توسعه دهندگان می توانند دستکاری کنند متمرکز می شود نه بر روی منطق آنها . این رویکرد در برنامه نویسی برای برنامه های بزرگ و پیچیده بسیار کاربردی است زیرا می توانیم یک پروژه بزرگ را به بخش های کوچکتر تقسیم کرده و به صورت گروهی روی یک پروژه پیچیده و بزرگ کار کرد.

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

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

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

برنامه نویسی شی گرا - کپسوله سازی

 

 

 

 

 

 

 

 

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

2- انتزاع ( abstraction):

خاصیت abstraction - برنامه نویسی شی گرا

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

3- ارث بری و وراثت (Inheritance):

 شی گرایی - ارث بری و وراثت

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

   4.چندریختی(Polymorphism): 

 شی گرایی - چندریختی

 

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

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

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

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

شئ گرایی در جاوا

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

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

برنامه نویسی شی گرا پایتون- شی گرایی در پایتون

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

زبان برنامه نویسی سی شارپ 

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

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

زبان برنامه نویسی C++:

برنامه نویسی شی گرا ++C- شی گرایی در سی پلاس پلاس

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

زبان برنامه نویسی Visual Basic .NET:

برنامه نویسی شی گرا Visual Basic .NET - شی گرایی در ویژوال بیسیک

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

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

برنامه نویسی شی گرا Ruby- شی گرایی در روبی

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

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

برنامه نویسی شی گرا Scala - شی گرایی در اسکالا

 

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

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

شئ گرایی در php

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

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

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

 


اشتراک گذاری

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

توضیحاتی در مورد نویسنده این مقاله :
زهرا چگینی زهرا چگینی

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

نظرات


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

برای پاسخ باید وارد شوید

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

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1 سلام و درود وقت بخیر، زبان ویژوال بیسیک خوبه ولی خب شما سوال هایی که دارید را در انجمن برنامه نویسی بپرسید اونجا کامل تر و مفصل تر پاسخ گو هستیم.
Tezar 58
tazar توضیحاتتون عالی بود و واقعا ازش استفاده کردم. من خودم پایتون کارکردم و همیشه با شی گرایی مشکل داشتم و نمیدونستم اصلا چیه ولی خب با این مقاله فهمیدم که دنیا دست کیه و کی به کی و چی به چیه 🙂

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1 خیلی خیلی خوشحالیم که توانسته ایم، یک مطلب را به دوست خوبی مثل شما یاد بدهیم، امیدوارم همیشه موفق باشید.
Tezar 58
tazar سلام.وقت بخیر متدها و تعریف property و تفاوت ان در js با css و.. و تفاوت ان با اتربیوت ها هم اگر بشود توضیحی ارایه فرمایید. با تشکر

برای پاسخ باید وارد شوید

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

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1 چه عالی که این مطلب شما را با این مفاهیم آشنا کرد، لطفا این مطلب را در بین دوستان خود به اشتراک بگذارید.
مریم سعادتی
مری عالــــــــــــــــــی بودــــــــــــــــــــــــــــــــــــــــــ

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1 مرسی از لطف شما، و روحیه مثبتی که به ما می دهید.
مهرانا عیسی پور
مهرانا :) کلا سایتتون عالیه

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1 خیلی خیلی ممنونیم ازتون
مهرانا عیسی پور
مهرانا سلام به درسمنی های عزیز این همه سایت در مورد این موضوع نوشته بودن ولی واسه شما یه چیز دیگه است عاااالی بود

برای پاسخ باید وارد شوید

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

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1 سلام خدمت شما، چشم حتما یک ویدئو راجب این موضوع تهیه خواهیم کرد، ممنون از پیشنهاد خوب شما که ما را در این راه یاری می کنید.
پویا ترکمن
پویا ترکمن شی گرایی عالیه ممنون از مقالتون خیلی خوب توضیح داده بودین

برای پاسخ باید وارد شوید

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

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1 سلام و درود خدمت شما، بله زبان های شی گرایی در حال حاضر در دنیا حکم رانی می کنند.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.