سوالی دارید؟

چنانچه سوالی دارید می‌توانید از قسمت پایین پرسیده تا پاسخ آن را بیابید!

درس ششم : تکنولوژی شی

lesson-6-object-technology

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

ارسال یک نظر

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

شما می‌توانید از این تگ‌های HTML استفاده نمائید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>