آموزش وردپرس
خانه - آموزشی - مفهوم شی گرایی به زبان ساده
شی گرایی

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

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

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

اما مفهوم شیء گرایی چیست؟
به طور خلاصه و فنی، برنامه نویسی شیء گرا همانند برنامه نویسی ساخت یافته از ساختمان های داده و توابع مرتبط با آنها تشکیل شده است که با فعالیت در کنار هم برنامه کاربردی را می سازند. شیء گرایی مفاهیم جدیدی از جمله داده های انتزاعی، ارث بری، کپسوله کردن و چندریختی است.

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

کلاس

کلاس ها در شیء گرایی همه چیز هستند و همه چیز در مفهوم کلاس خلاصه می شود، بنابراین بهتر است کلاس را خوب بشناسیم. کلاس ها در شیء گرایی همانند مفاهیمی هستند که در ذهن ما به صورت انتزاعی شکل می گیرد.

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

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

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

حتما بخوانید  سریال آموزشی SQL SERVER 2008 به زبان فارسی ( قسمت سیزدهم)

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

چندریختی
گاهی اوقات پیش می آید که عملکردهای اشیا در مقابل ورودی های مختلف متفاوت است. در واقع، مساله همان تفاوت معروف بفرما و بشین است.
در هر دو حالت، امر نشستن به کار می رود، در واقع تابع نشستن شما را صدا می کنند، اما در مورد اول، ورودی عبارت «بفرما» است. و در مورد دوم، عبارت کمتر مودبانه «بشین».

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

پنهان سازی اطلاعات
گری بوچ، مولف کتاب طراحی سیستم های شیء گرا می گوید: «پنهان سازی اطلاعات روندی است که در آن عناصر و عملیات موجود در یک مفهوم پنهان می شود و تنها رابط کاربری مناسب آن نشان داده می شود. » بیایید اینطور فرض کنیم که شما یک بشقاب غذای بسیار خوشمزه دارید که خودتان درست کرده اید، با مفهوم شیء گرایی و همچنین بحث پنهان سازی اطلاعات، اگر آن بشقاب غذا در یخچال باشد و کلید آن را فقط خودتان داشته باشید، پس این بشقاب، یک حالت private دارد.

اگر این بشقاب برای اعضای خانواده در دسترس باشد، (یعنی در زنجیره ارث بری باشند)، حالت protected دارد و اگر برای دسترس همگان آزاد بگذارید که از خیابان بیایند و بشقاب غذای شما را بردارند، این حالت public دارد و امنیت پایینی خواهد داشت .

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

 

قیمت پروژه : رایگان

جهت کسب اطلاعات بیشتر از طریق بخش تماس با ما اقدام نمائید.

درباره ی محمد کاظمی

همچنین ببینید

php-course

دوره آموزشی ۱۰ روزه پروژه محور PHP

دوره استثنایی و جدید پروژه محور آموزش PHP سامانه رضا سورس ، از ابتدای خرداد …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *