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