شی گرایی، یک شیوه برنامه نویسی
شی گرایی یک شیوه برنامه نویسی است که در آن برنامه به شکل شیءها ساخته میشود. هر شیء دارای دادهها و توابعی است که بر روی دادهها عمل میکنند. این شیوه برنامه نویسی باعث میشود که برنامه بهتر سازماندهی شده و قابل توسعه و نگهداری باشد.
برای درک بهتر شی گرایی، میتوان از مثالهایی از دنیای واقعی استفاده کرد. به طور مثال، یک خودرو را میتوان یک شیء در نظر گرفت که دارای دادههایی مانند رنگ، برند، سرعت و توابعی مانند روشن کردن، خاموش کردن، تغییر دنده و ترمز زدن است. همچنین، چندین خودرو را میتوان از یک کلاس خودرو اشتقاق داد که ویژگیها و رفتارهای مشترک آنها را تعریف میکند.
https://sariasan.com/featured/what-is-object-oriented-programming/
زبان های شی گرا
بسیاری از زبانهای برنامه نویسی از شی گرایی پشتیبانی میکنند. برخی از معروفترین آنها عبارتند از:
- جاوا (Java) که یک زبان همهمنظوره، مستقل از سکو و مبتنی بر کلاس است. جاوا برای ساخت برنامههای وب، دسکتاپ، موبایل و شبکه استفاده میشود.
- سی پلاس پلاس (C++) که یک زبان سطح میانی، کامپایل شونده و چند پارادایم است. سی پلاس پلاس برای ساخت برنامههای سرعت بالا، بازیهای رایانهای، سیستمعاملها و نرمافزارهای گرافیکی استفاده میشود.
- سی شارپ (C#) که یک زبان همهمنظوره، کامپایل شونده و مبتنی بر کلاس است. سی شارپ برای ساخت برنامههای ویندوز، وب، موبایل و بازیهای رایانهای استفاده میشود.
- پایتون (Python): پایتون که یک زبان همهمنظوره، تفسیر شونده و چند پارادایم است. پایتون برای ساخت برنامههای وب، علم داده، هوش مصنوعی و اتوماسیون استفاده میشود.
- روبی (Ruby) که یک زبان همهمنظوره، تفسیر شونده و چند پارادایم است. روبی برای ساخت برنامههای وب، نرمافزارهای دسکتاپ و اسکریپت نویسی استفاده میشود.
البته این فقط چند نمونه از زبانهای شی گرا هستند و زبانهای دیگری نظیر جاوا اسکریپت (JavaScript) ، پرل (Perl) ، اسمال تاک (Smalltalk) و … نیز وجود دارند.
اصول شی گرایی
اصول شی گرایی چهار قانون اساسی هستند که برنامه نویسان باید آنها را در طراحی و پیادهسازی برنامههای شی گرا رعایت کنند. این چهار اصل عبارتند از:
- انتزاع (Abstraction) که به معنای تمرکز بر ویژگیها و رفتارهای مهم یک شی است و نادیده گرفتن جزئیات غیرضروری آن. به عنوان مثال، وقتی ما از یک خودرو استفاده میکنیم، فقط به ویژگیهای مثل رنگ، برند، سرعت و … توجه داریم و نمیدانیم که داخل موتور چه اتفاقاتی میافتد.
- کپسولهسازی (Encapsulation) که به معنای پنهان کردن دادهها و رفتارهای داخلی یک شی از دسترس بقیه اشیا است. این کار باعث میشود که شی فقط از طریق رابط خود (Interface) قابل دسترس باشد و جلوگیری از تغییرات نامطلوب در دادههای شی شود. به عنوان مثال، وقتی ما از یک تلفن همراه استفاده میکنیم، فقط با صفحه نمایش و دکمههای آن ارتباط برقرار میکنیم و نمیدانیم که داخل باتری چگونه شارژ میشود.
- وراثت (Inheritance) که به معنای انتقال ویژگیها و رفتارهای یک شی به شئ دختر (Subclass) است. این کار باعث میشود که بتوان از قابل استفاده مجدد کدها (Code Reusability) بهره برد و تکرار زدایی (Redundancy) را کاهش داد. به عنوان مثال، گوشت خوران (Carnivores) چوپان سگ (Shepherd Dog)، پلنگ (Leopard)، شیر (Lion) و … همگي زیرمجموعۀ حيوانات (Animals) هستند.
- پلِي مُورفيسم (Polymorphism) که به معنای توانایی چندین شئ در اجرای چندین رفتار با نام یکسان است. این کار باعث میشود که بتوان با استفاده از چارچوب های (Framework) مناسب، برنامۀ قابل تغيير و قابل توسعۀ خود را پيادۀ سازي كرد. به عنوان مثال، یک شی از نوع حیوان (Animal) میتواند رفتارهای مختلفی را با نام یکسان (مثل صدا دادن) انجام دهد.
کاربردهایی شی گرایی
شی گرایی کاربردهای متعددی در برنامه نویسی دارد. برخی از این کاربردها عبارتند از:
- پیاده سازی موجودیت های دنیای واقعی در برنامه نویسی با استفاده از کلاس ها و اشیا. این کار باعث می شود که برنامه نویس بتواند به راحتی مدل سازی و شبیه سازی مسائل پیچیده را انجام دهد. به عنوان مثال، یک برنامه نویس می تواند یک شی از نوع خودرو را با ویژگی های مثل رنگ، برند، سرعت و … تعریف کند و با استفاده از توابع مختلف، رفتارهای مختلف را بر روی آن اعمال کند.
- مدیریت پیچیدگی برنامه های نرم افزاری با استفاده از اصول شی گرایی مثل کپسوله سازی، وراثت و پلِي مُورفيسم. این کار باعث می شود که برنامه نویس بتواند برنامه خود را به قطعات کوچکتر و قابل مدیریت تر تقسیم کند، از تکرار زدایی کدها بهره ببرد و با استفاده از چارچوب های مناسب، برنامه خود را قابل تغيير و قابل توسعه کند.
- افزایش خوانایی و درک پذیری برنامه های نرم افزاری با استفاده از زبان های شی گرا. زبان های شی گرا به دلیل شباهت دستورات آن ها به زبان های طبیعی، فهم و یادگیری آن ها ساده تر است. به عنوان مثال، زبان جاوا (Java) یک زبان شي گرا است که دستورات آن به زبان انگليسي نوشته مي شود.
ممنون خیلی مطالبتون خوبه
برنامه نویسی شی گرا چه تفاوتی با برنامه نویسی غیر شیگرا دارن؟