دانلود رایگان سوالات آزمون استخدامی شایستگی اصول برنامه نویسی شی گرا بخش خصوصی
سوالات شایستگی اصول برنامه نویسی شی گرا
شایستگی اصول برنامه نویسی شی گرا
برنامه نویسی یکی از مهمترین مهارتهای روز دنیا به حساب میآید و برنامه نویسی شی گرا (Object Oriented Programming) یا به اختصار «OOP» هم یکی از مهمترین مقولههای برنامه نویسی است. در این مقاله به بررسی اصول برنامه نویسی شی گرا (Object Oriented Programming Priciples) پرداخته شده است. هدف اصلی شی گرایی پیادهسازی موجودیتهای دنیای واقعی در برنامه نویسی است. اصول برنامه نویسی شی گرا روشها و متغیرهایی را برای استفاده مجدد از کدها در برنامه، همراه با سازگاری کامل ایجاد میکنند. اصول برنامه نویسی شی گرا شامل چهار اصل است که در این مطلب به طور جامع به آنها پرداخته میشود.
برنامه نویسی شی گرا چیست؟
برنامه نویسی شی گرا روشی برای توسعه برنامه نویسی بر اساس «شی» (Object) است. شی گرایی نوعی از برنامه نویسی به حساب میآید که در طراحی نرم افزار به وسیله آن، به جای استفاده از توابع و منطق برنامه نویسی از دادهها یا اشیا استفاده میشود. در دنیا همه چیز را میتوان به عنوان یک شی در نظر گرفت. در برنامه نویسی شی گرا میتوان اشیا را بر اساس خصوصیتها و رفتار آنها تعریف کرد. این رویکرد از برنامه نویسی برای برنامههای بزرگ، پیچیده و فعال در بروزرسانی و «نگهداری» (Maintain) آنها مناسب است. این برنامهها شامل روشهایی برای ساخت و طراحی ازجمله برنامهها و اپلیکیشنهای موبایل هستند، برای مثال میتوان از برنامه نویسی شی گرا در تولید نرم افزارهای شبیهسازی سیستم استفاده کرد.
سازماندهی یک برنامه به صورت شی گرا، آن را برای توسعه با روشهای گروهی و مشارکتی نیز سودمند میکند. از مزایای کلی برنامه نویسی شی گرا میتوان به «قابلیت استفاده مجدد از کدها» (Code Reusability)، «مقیاسپذیری» (Scalability) و «کارایی» (Efficiency) بالا اشاره کرد. اولین مرحله استفاده از شی گرایی جمعآوری همه اشیا مورد نیاز برنامه و ارتباطات میان آنها است. نمونههایی از یک شی میتواند شامل برخی موجودیتهای فیزیکی ازجمله یک انسان با ویژگیهایی مانند نام و آدرس یا برنامههای رایانهای کوچک مانند ویجتها باشد.
به طور خلاصه، شی گرایی روشی برای برنامه نویسی است که در توسعه نرم افزار استفاده میشود و اصول خاصی دارد که به توسعه آن کمک میکند. روشهای توسعه نرم افزار بسیاری وجود دارند، اما میتوان گفت که شی گرایی معروفترین روش به حساب میآید. در ادامه این مقاله، به بررسی اصول برنامه نویسی شی گرا پرداخته میشود.
اصول برنامه نویسی شی گرا
شی گرایی در برنامه نویسی روشی برای طراحی برنامهها با استفاده از کلاس و اشیا به حساب میآید. با پیادهسازی شی گرایی میتوان اشیا را در برنامه سازماندهی کرد. این روش به عنوان رویکردی جهت کنترل دادهها در کدها نیز مورد استفاده قرار میگیرد. شی گرایی در برنامه نویسی حوزهای است که علاوه بر دو مفهوم اساسی «کلاس» و «شی»، چهار اصل و خصوصیت کلیدی زیر را نیز شامل میشود. این چهار اصل برنامه نویسی شی گرا در ادامه فهرست شدهاند:
- «وراثت» یا «ارث بری» (Inheritance)
- «تجرید» یا «انتزاع» (Abstraction)
- «پلی مورفیسم» یا «چند ریختی» یا «چند شکلی» (Polymorphism)
- «کپسوله سازی» (Encapsulation)
در این رویکرد، برنامه نویسان، نوع داده، ساختار نوع داده و عملیاتی را تعریف میکنند که روی ساختار دادهها انجام میشوند. بنابراین، علاوه بر کلاسها و اشیا، برای بهرهمندی از مزیتهای شیگرایی در برنامه نویسی، لازم است چهار اصل فوق نیز در برنامه پیادهسازی و برقرار شوند.
پیش از شرح اصول برنامه نویسی شی گرا، در خصوص مفاهیم برنامه نویسی، دو عنصر مهم زیر وجود دارند که ابتدا به شرح آن دو پرداخته شده است:
- دادهها
- عملیات انجام شده روی دادهها یا همان توابع
1- انتزاع در شی گرایی فرایندی است که بر اساس آن تنها اطلاعات مورد نیاز نمایش داده میشوند و اطلاعات غیرضروری پنهان خواهند شد. انتزاع یا همان «Abstraction» به معنی مخفی کردن پیادهسازیهای داخلی و نشان دادن ویژگیهای مورد نیاز یا مجموعهای از خدمات ارائه شده است.
انتزاع یا Abstraction در برنامه نویسی شی گرا به دلیل داشتن ویژگیهای بسیاری در بخشهای متفاوتی از برنامهها مورد استفاده قرار میگیرند. در این بخش از مقاله، به بررسی و شرح برخی از این ویژگیها پرداخته شده است و این ویژگیها در ادامه فهرست شدهاند:
- امنیت
- تقویت آسان برنامه
- بهبود سهولت در برنامه نویسی
- بهبود قابلیت نگهداری
2- کپسوله سازی یا همان «Encapsulation» یکی از اصول مهم برنامه نویسی شی گرا به حساب میآید و به معنی قرار دادن دادهها و ویژگیها یا متدها و اعضای دادهها در یک واحد است. در کلاسهای یک برنامه شی گرا، داده و ویژگیهایی وجود دارند و عملیاتی روی دادهها انجام میشود. بر اساس این اصل شی گرایی، دادهها در یک واحد ادغام شدهاند. کپسوله سازی باعث افزایش امنیت برنامه میشود؛ زیرا هر چیزی مربوط به یک کار واحد در آن گروهبندی شده است و دسترسی به دادهها بر اساس نیاز انجام خواهد شد.
کپسوله سازی که یکی از اصول مهم شی گرایی به حساب میآید، دارای ویژگیها و مزایایی است که استفاده از آن را برای برنامه سودمند میکند. از اینرو، در این بخش به بررسی برخی از ویژگیهای کپسوله سازی پرداخته شده است:
- با استفاده از روش کپسوله سازی میتوان امنیت بسیار بالایی را برای برنامهها و دادهها فراهم کرد.
- کپسوله سازی دادهها و عملیات آنها را در یک واحد و در کنار یکدیگر گروهبندی میکند.
- این روش یک لایه امنیتی اضافه به دادهها میافزاید و به کاربر امکان دسترسی فقط به لایههای مجاز را میدهد.
3- وراثت یکی از اصول برنامه نویسی شی گرا است که با استفاده از آن میتوان ویژگیهای موجود در یک کلاس را در کلاسی جدید استفاده کرد. فرض میشود کلاسی وجود دارد و به عنوان کلاس «والد» (Parent) در نظر گرفته میشود و این کلاس دارای چند متد مرتبط با کلاسهای دیگر است. سپس، کلاس جدیدی به عنوان کلاس «فرزند» (Child) اعلان میشود که متدهایی مرتبط به خودش دارد. بنابراین، زمانی که کلاس فرزند از کلاس والد ارث بری میکند، کلاس فرزند میتواند از متدهای موجود در کلاس والد در کنار متدهایی استفاده کند که خودش در کلاس دارد. به این رویکرد ارث بری یا وراثت یا همان Inheritance در برنامه نویسی شی گرا گفته میشود.
در ادامه برخی دیگر از ویژگیهای این اصل شی گرایی ارائه شدهاند:
- باعث کاهش «افزونگی» (Redundancy) در کدها میشود.
- باعث کاهش سایز «کدهای منبع» (Source Code) و بهبود خوانایی کدها میشود.
- کدها را با استفاده از تقسیم آنها به گروههای کلاسهای والد و فرزند سادهتر میکند.
- پشتیبانی از قابلیت «توسعهپذیری» (Extensibility) به وسیله «رونویسی» (Override) عملکردهای کلاس پایه توسط کلاسهای فرزند انجام میشود.
- به دلیل اینکه با قابلیت استفاده مجدد از کدها، کدهای کلاس پایه همیشه در حال تست و اشکالزدایی هستند، قابلیت اطمینان در برنامهها افزایش مییابد.
روش وراثت در شی گرایی دارای معایب معدودی نیز است که در ادامه به بررسی برخی از آنها میپردازیم:
- به دلیل اینکه در روش وراثت کلاس فرزند و والد وابستگی و «اتصال» (Coupling) زیادی با یکدیگر دارند، اگر کدهای کلاس والد تغییر پیدا کنند، روی کلاس فرزند نیز تاًثیر خواهند گذاشت.
- در یک کلاس سلسلهمراتبی بسیاری از اعضای دادهها بدون استفاده میمانند و حافظه اختصاص داده شده به آنها استفاده نمیشود. بنابراین، اگر وراثت به درستی پیادهسازی نشود، این موضوع، روی کارایی برنامه تأثیر میگذارد.
انواع مختلف وراثت:
- «منفرد» (Single Level)
- «چند سطحی» (Multilevel)
- «چندتایی» (Multiple)
- «چندمسیره» (Multipath)
- «سلسلهمراتبی» (Hierarchical)
- «ترکیبی» (Hybrid)
4- پلی مورفیسم، چند ریختی یا چند شکلی اساسی و ضروریترین اصل برنامه نویسی شی گرا به حساب میآید. کلمه «Polymorphism» از ترکیب دو کلمه «Poly» به معنی «زیاد» و کلمه «Morph» به معنی شکل یا فرم ایجاد شده است. از اینرو پلی مورفیسم را میتوان چند ریختی یا چند شکلی نیز نامید. در برنامه نویسی شی گرا، هر شی یا متدی که دارای بیش از یک نام باشد با این مفهوم ارتباط دارد و این موضوع چیزی جز چند شکلی نیست. پلی مورفیسم به وجود شکلهای بسیار در برنامه گفته میشود یا میتوان گفت پلی مورفیسم پردازشی به حساب میآید که یک عمل واحد را با روشهای گوناگونی انجام میدهد.
پلی مورفیسم در برنامه نویسی شی گرا شامل دو نوع متفاوت زیر است:
- چند ریختی ایستا یا ثابت (Static Polymorphism) یا چند ریختی زمان کامپایل (Compile Time Polymorphism)
- چند ریختی پویا (Dynamic Polymorphism) یا چند ریختی زمان اجرا (Runtime Polymorphism)
هر کدام از روشهای فوق، با استفاده از رویکردهای مخصوصی پلی مورفیسم را انجام میدهند که در ادامه نمایش داده میشوند:
- متد اضافه بار یا سربارگذاری (Overloading) که مختص به پلی مورفیسم زمان کامپایل است.
- متد رونویسی کردن (Overriding) که در پلی مورفیسم زمان اجرا استفاده میشود.
در این بخش به برخی از مزایای اصلی اصول برنامه نویسی شی گرا ارائه شدهاند:
- «پیمانهبندی» (Modularity)
- استفاده مجدد از کدها
- بهرهوری
- بروزرسانی و مقیاسبندی آسان
- «واسطها» (Interface)
- امنیت
- انعطافپذیری
اصول برنامه نویسی شی گرا با اشیا زندگی واقعی ارتباط دارند. در این نوع برنامه نویسی هر عملی که قرار است به صورت تابعی انجام شود، با استفاده از کلاسها و اشیا انجام میشود. ساختار کدها با برنامه نویسی به روش شی گرا سازمانیافتهتر است؛ زیرا نیازی نیست کدهایی که چند بار در یک برنامه پیادهسازی میشوند را چند بار نوشت و فقط یک بار کافی است. میتوان کلاسهایی ایجاد کرد که تابع را تعریف میکنند و با ایجاد یک شی از آنها، تابع فراخوانی میشود.
از طرف دیگر شی گرای دارای اصلی به نام «وراثت» است که قابلیت استفاده مجدد از کدها را افزایش میدهد و بروزرسانی کدها را بسیار ساده میکند. همچنین «انتزاع» و «کپسولهسازی» به افزایش امنیت دادهها کمک میکنند. برخی از پرکاربردترین و مهمترین زبانهای برنامه نویسی که در آنها از شی گرایی و اکثر اصول برنامه نویسی شی گرا پشتیبانی میشود، شامل «جاوا» (Java)، «++C»، «جاوا اسکریپت» (JavaScript)، پرل (Perl)، PHP و #C هستند. همچنین برخی از زبانهای برنامه نویسی که به طور کامل شی گرا به حساب میآیند، شامل پایتون (Python)، روبی (Ruby)، «اسکالا» (Scala) و سایر موارد میشوند.
مؤلفه های برنامه نویسی شی گرا
- شی
- کلاس
- متد
- نمونه
- ویژگی یا Attribute
اصول برنامه نویسی شی گرا پرکاربردترین الگوی برنامه نویسی به حساب میآید و به توسعه برنامههای کاربردی در مقیاس بزرگ و کوچک کمک میکنند تا توسعه دهندگان بتوانند با استفاده از آنها برنامههای کارآمدی بسازند. این اصول برنامه نویسی به تقویت و امنیت اشیا برنامه با استفاده از اصول قدرتمند انتزاع و کپسوله سازی کمک میکند. معروفترین زبانهای برنامه نویسی شی گرا شامل پایتون، جاوا، روبی و سایر موارد میشوند. در این مطلب سعی شد به طور کامل و همراه با مثالهای کاربردی و شبهکدها انواع اصول برنامه نویسی شی گرا توصیف و مورد بررسی قرار بگیرد.
دانلود سوالات شایستگی اصول برنامه نویسی شی گرا بخش خصوصی