مقدمه ای بر برنامه نویسی شی گراء در دات نت
برنامه نویسی شی گراء، بدون شک مهمترین تحول در دنیای نرم افزار طی سالیان گذشته بوده که بیشترین تاثیر را در پیشبرد نرم افزار بدنبال داشته و ما امروز در صنعت گسترده نرم افزار از دستاوردهای وسیع آن بهره مند هستیم . در این مقاله قصد داریم ، به بررسی برنامه نویسی شی گراء پرداخته و از این زاویه نگاهی به دات نت داشته باشیم .
بمنظور شناخت برنامه نویسی شی گراء ، کافی است به اطراف خود نگاهی داشته باشیم .جارو برقی ، قهوه جوش ، پنکه سقفی و مجموعه بسیار گسترده ای از سایر اشیاء را پیرامون زندگی خود مشاهده می نمائیم . اشیاء ما را محاصره و یا در محاصره اشیاء می باشیم . برخی از این اشیاء نظیر دوربین ، مستقل عمل نموه و برخی دیگر نظیر تلفن و ماشین های پاسخگو با سایر اشیاء ارتباط دارند . برخی از اشیاء دارای داده ها ئی می باشند که بین کاربران استفاده می گردد(یک دفترچه تلقن) . برخی از اشیاء شامل اشیاء دیگری می باشند، یک دستگاه بستنی ساز درون فریزر ، نمونه ای در این زمینه است .
بسیاری از اشیاء از لحاظ عملکرد با یکدیگر مشابه ولی از لحاظ اهداف با یکدیگر متفاوت می باشند . مثلا وان حمام و سینک آشبزخانه هر دو امکان استفاده از آب را فراهم می نمایند ،ولی این کار بندرت اتفاق خواهد افتاد که شما در سینک آشبزخانه دوش گرفته و یا ظروف آشبزخانه خود را در وان حمام بشوئید! بهرحال وان حمام و سینک آشبزخانه موجود در منزل ، احتمالا از یک لوله آب مشترک در ساختمان استفاده و اینترفیس آنها در موارد متعددی مشترک است ( پیچ آب گرم وسرد ، یک شیر آب ، یک فاضلاب ) .
در صورت تامل در ارتباط با اشیاء فوق ، با سوالات متعددی مواجه خواهیم شد . چه تفاوت هائی بین یک وان حمام و سینک آشبزحانه ، وجود دارد ؟ آیا اختلاف موجود به محل آنها ، اندازه لگن و یا گودی آنها از سطح زمین برمی گردد. شباهت موجود بین اشیاء فوق چیست ؟
در برخی موارد انجام عملات یکسان در ارتباط با یک شی ، رفتارهای متفاوتی را بدنبال خواهد داشت . یک شی قادر به انجام عملیات متفاوتی با توجه به ماهیت وضعیت بوجود آمده است . مثلا زمانیکه دکمه Play یک دستگاه کنترل کننده DVD و یا VCD فعال می گردد ، دستگاه قوق ، یک فیلم را پخش و ما شاهد نمایش آن بر روی صفحه تلویزیون خواهیم بود. اما اگر یک CD در دستگاه Player باشد ، همزمان با فشردن دکمه Play ، دستگاه Player باعث پخش CD صوتی شده و ما شاهد نواختن موسیقی از بلندگوهای مربوطه خواهیم بود. همانگونه که مشاهده می گردد در چنین وضعیتی ، فعال نمودن دکمه ها ی مشابه ، عملیات یکسان ولی با نتایج متفاوت را بدنبال داشته است .
به بسیاری از اشیاء پیرامون خود، می توان بعنوان جعبه های سیاه ( black box ) ، نگاه نمود.در چنین حالتی نسبت به اصول اولیه عملکرد شی مورد نظر و پردازش های اولیه آن شناخت لازم وجود خواهد داشت ولی بسیاری از جزئیات عملیاتی که یک شی انجام می دهد برای ما ناشناخته خواهد بود. اکثرا در زمان استفاده از یک شی علاقه مند به رویکرد فوق می باشند ( آشنائی با پتانسیل های شی و نحوه بالفعل نمودن آنان و پرهیز از درگیر شدن و آگاهی از جزئیات مربوطه ) . در چنین مواردی برای استفاده از اشیاء موجود در منزل ، ضرورتی به آگاهی از مکانیزم داخلی بعنوان شرط لازم وجود نخواهد داشت و می توان بدون درگیر شدن در جزئیات از شی موجود استفاده نمود.
بمنظور بررسی موضوع اشاره شده ، می توانیم نگاهی به عملکرد یک لامپ 100 وات ، داشته باشیم . سیم پیچ درون لامپ چیزی بیشتر از یک مقاومت ساده نیست . زمانیکه برق فعال ( سوئیج فعال گردد) شده باشد ، حرارت سیم پیچ درون لامپ در حدود 2500 درجه سلسیوس ، خواهد بود.وضعیت فوق ، باعث تشعش گرما ئی متناسب با طول رشته سیم درون لامپ ( قطر خیر ) و حدود 1750 لومن ( واحد پخش نور) می گردد .بدین ترتیب نور مرئی با طول موجی حدود 555 نانومنر را شاهد خواهیم بود. رشته موجود در لامپ از تنگستن تشکیل شده است . آیا به این حجم ازاطلاعات بهمراه جزئیات مربوطه در زمان استفاده از لامپ ، نیاز خواهیم داشت و یا صرفا می خواهیم زمانیکه سوئیچ فعال می گردد، لامپ روشن و با سایر مسائل و نحوه انجام این کار ، کاری نداریم ؟ در این راستا ، استفاده کنندگان از لامپ آن را بمنزله یک جعبه سیاه در نظر گرفته و صرفا تمایل به آگاهی از نحوه استفاده از اینترفیس مربوطه برای بخدمت گرفتن پتانسیل موجود را دارند .
هر شی دارای دو خصلت ذاتی است : وضعیت ( state ) و رفتار ( Behavior ) . مثلا یک لامپ دارای اطلاعاتی نظیر : روشن/خاموش بودن ، نام تجاری ، طول عمر و موارد دیگر است که جملگی وضعیت شی فوق را مشخص می نمایند. رفتار لامپ ، شامل ارائه نور و روشنائی است .
یک شی مسلما نسبت به خود ، بمنزله یک جزیره است . بسیاری از اشیاء بصورت دسته جمعی و با تشریک مساعی در یک سیستم قرار خواهند گرفت . مثلا تلویزیون و بلندگوهای آن بخشی از سیستمی می باشند که موسوم به تئاتر خانوادگی است . یخچال و اجاق گاز بخشی از سیستمی با نام آشپزخانه می باشند. این نوع سیستم ها خود متعلق به یک سیستم بزرگتر و با نام آپارتمان و یا خانه می باشند . مجموعه ای از آپارتمانها سیستم دیگری را با نام مجتمع ایجاد می نمایند.