تبلیغات
برنامه نویسی شی گرا در سی شارپ - درباره شی گرایی

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

مقدمه

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

مثالی از دنیای واقعی

مثال1: نجاری را در نظر بگیرید که برای ساخت یک میز باید از اشیای مختلفی مثل میخ، چکش، اره و... استفاده کند. هر کدام از این ابزارها اشیای جدا گانه ای هستند که بدون دخالت در کار یکدیگر به ساخت میز مورد نظر نجار کمک میکنند. چکش میخ را میکوبد بدون این که از ماهیت میخ با خبر باشد... اره چوب را تکه تکه میکند بدون این که در کار چکش دخالت کند.... در نهایت حاصل کار میزی خواهد بود که نجار با استفاده از این ابزارها پدید آورده است. در حقیقت نجار برای ساخت میز خود از اشیای مختلفی که هر کدام ماهیت و خصوصیات خاص خودشان را دارند کمک گرفت.

مثال2: فرض نمایید که ما قصد داریم قطعه ای را به طور انبوه تولید نماییم یک روش آنست که ما این قطعات را یک به یک تراش دهیم ولی این کار ممکن است ماهها و شاید سالها طول بکشد و اگر نتیجه کار را هم بررسی نماییم ملاحظه می کنیم که قطعات همگی یک شکل و یک دست نیستند همچینین هزینه تمام شده آن هم بسیار بالا خواهد بود اما روش بهتری نیز وجود دارد و آن این است که ما یک قالب برای آن قطعه بسازیم و بعد با استفاده از آن قالب قطعات مورد نیاز خود را تولید نماییم. پس اگر ما فقط در ساختن قالب دقت لازم را به خرج دهیم در پایان کار مشاهده می کنیم که قطعات تولید شده همگی یک شکل و یک دست از آب درآمده اند. در برنامه نویسی شی گرا هم در واقع از این روش استفاده می شود ما یک قالب (کلاس) می سازیم و آن را امتحان می نماییم تا از درستی طرز کار آن مطمئن شویم و بعد از آن بارها استفاده می نماییم. 123

مزایای شی گرایی

شی گرایی در دنیای برنامه نویسی هم به همین صورت است. برنامه نویس در طول کار خود اشیای مورد نیاز خود را ایجاد میکند و یا از اشیای آماده ای که توسط برنامه نویسان دیگر ایجاد شده است استفاده میکند — تا با در کنار هم قرار دادن آن ها برنامه ای را به وجود آورد که از اشیای مختلفی تشکیل شده است. این روش مزیت های زیادی دارد که در زیر چند نمونه از اصلی ترین آن ها را با هم مرور میکنیم:

  • بهینه شدن ساختار برنامه : شی گرایی باعث تولید برنامه های ساخت یافته تری می شود که امکان تغییر و توسعه در برنامه را ساده تر میکند. مثال: اگر بخواهید قسمت خاصی از برنامه را تغییر دهید، دیگر لازم نیست تمام کدهای برنامه را ویرایش کنید چون می دانید که تغییرات شما فقط در همان قسمت مد نظرتان اعمال میشود و خللی در کار قسمت های دیگر به وجود نمی آید.
  • استفاده مجدد از کدها : وقتی شما یک شی جدید را خلق میکنید میتوانید تا مدت ها از آن استفاده کنید و یا آن را با دیگران به اشتراک بگذارید. این مزیت هنگام ساخت کتابخانه های شی گرا بسیار کارآمد است. مثال: یک دوچرخه می تواند تا مدت زمان زیادی به شما سواری دهد. تازه میتوانید برای سواری آن را به دوستانتان هم قرض بدهید.
  • کپسوله سازی : در برنامه نویسی هر چه اشیای تشکیل دهنده ی یک برنامه از طرز کار یکدیگر بی خبرتر باشند، برنامه شما ساختار بهتری پیدا خواهد کرد زیرا در این شرایط اشیا در کار یکدیگر دخالت نمی کنند؛ با استفاده از شی گرایی قسمت های مختلف برنامه ی شما از نحوه ی کار همدیگر بی خبرند و این مساله در حالی اتفاق می افتد که شما به عنوان برنامه نویس از طرز کار آن ها اطلاع دارید. مثال: یک نجار می داند که فرو رفتن میخ در چوب، به خاطر نوک تیز آن است. اما چکشی که روی میخ می کوبد از نحوه ی فرو رفتن میخ در چوب بی خبر است. وظیفه ی چکش فقط کوبیدن میخ است. در حقیقت وظیفه ی چکش فقط کوبیدن است، یک کوبیدن خالص! یعنی بهتر است که چکش حتی از شی ای که به آن نیرو وارد می کند هم بی خبر بماند. به زبان دیگر چکش فقط باید ضربه بزند، این که شی ضرب دیده میخ باشد یا دیوار، دیگر در حیطه ی معلومات چکش نمی گنجد!
  • وراثت : این قابلیت دقیقا متناسب با نامش عمل میکند. یعنی اگر یک شی "الف" از شی "ب" ارث ببرد، یک سری از خصوصیات شی "ب" به شی "الف" وارد می شود. در برنامه نویسی به شی "الف" فرزند، و به شی "ب" والد گفته می شود.

مثال

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


آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :
  •