انجمن برنامه نویسان البرز

تبلیغات

برنامه نویسی شیئ گرا چیست و چرا خوب است؟ – درس اول

برنامه نویسی شیئ گرا چیست و چرا خوب است؟ – درس اول


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

زبان های برنامه نویسی شیئ گرا، بهتر از زبان های “این کار را بکن / آن کار را نکن” هستند. چرا که داده ها را طوری مدیریت میکنند که کاربران بتوانند با آنها هر کاری را انجام بدهند. در شیئ گرایی، برای تغییر داده ها، شما میتوانید کدی را که نوشته اید، تغییر بدهید و مجبور نیستید کل برنامه را از نو بنویسید.

اشیاء و کلاس ها در برنامه نویسی شیئ گرا

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

اما اشیاء، تمام داستان ما نیستند. با وجود اینکه خانه ها، تفاوت هایی جزیی با هم دارند، اما تمام آنها ویژگه های مشترکی هم دارند. برای مثال، تمام خانه ها، رنگ نما دارند (هرچند این رنگ متفاوت است). تمام خانه ها کابینت دارند.

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

در برنامه نویسی شیئ گرا هم دقیییقا همینطور است. در ابتدا برنامه نویس یک کد مینویسد که یک کلاس را توضیح میدهد. سپس وقتی برنامه اجرا میشود، از روی آن کلاس اشیایی میسازد.

برنامه نویس یک کلاس را میسازد، و برنامه از روی آن کلاس، اشیائ را میسازد.

اصلا چرا برنامه نویسی شیئ گرا خوب است؟

فرض کنید شما یک برنامه کامپیوتری برای مدیریت خانه های دوبلکس در حال ساخت نوشتید. بعد از تمام شدن برنامه، رئیس شما تصمیم میگیرد نقشه کار را تغییر بدهد. به این صورت که، نیمی از خانه ها ۳ اتاق داشته باشند و بقیه ۴ اتاق داشته باشند. اگر از سبک قدیمی برنامه نویسی (مثل فورترن) استفاده کنید، دستورات شما به شکل زیر خواهد بود:

  1. یک چاله عمیق در زمین بساز.
  2. پی و پایه ساختمان را بتن ریزی کن.
  3. یک دیوار ۲ در ۴ اطراف پی بساز

این نوع کد نویسی، شبیه ساختن یک لیست بلند از دستورات پشت سر هم است. نه ساخت یک لیست اصلی (یک کلاس). برای تغییر دادن برنامه، شما باید در لیست، به دنبال دستوری بگردید که تعداد اتاق خواب ها را مشخص میکند. فرض کنید لیست دستورات شما چند صد صفحه باشد!!!! در مقابل، استفاده از یک کلاس، مثل استفاده از یک پلان یا نقشه اصلی است. اگر قصد دارید هم خانه هایی با ۳ اتاق بسازید و هم ۴ اتاق (خانه های دوبلکس) اینطور عمل میکنید:

  1. یک کلاس میسازید به نام “خانه”  که نقشه مربوط به یک خانه ۲ طبقه است. طبقه اول را میسازید و طبقه دوم را خالی میگذارید.
  2. حالا دو کلاس(پلان) دیگر برای طبقه دوم میسازید. یکی برای طبقه دوم ۳ خوابه و یکی برای طبقه دوم ۴ خوابه. اسم اولی را میگذاریم “ساختمان ۳ خوابه” و اسم دومی را میگذاریم “ساختمان ۴ خوابه”

به همین سادگی! مدیر شما با عصبانیتازشما میپرسد پلان هایی که برای طبقه دوم ساخته اید به درد نمیخورد! چطور بک پلان برای ساختمان ۳ خوابه و ۴ خوابه ساختید، بدون اینکه طبقه اول را درآن کشیده باشید. این خانه ها طبقه اول ندارند؟

جوابی که باید به مدیرتان بدهید این است: “پلان ساختمان ۳ خوابه، به شما میگوید برای اطلاع از جزئیات طبقه اول، به سراغ پلان ‘خانه’ بروید. من فقط اطلاعات طبقه دوم ۳ خوابه را دارم. به همین ترتیب پلان ۴ خوابه، به شما میگوید برای اطلاع از نقشه طبقه اول، به سراغ پلان ‘خانه’ بروید. من فقط اطلاعات طبقه دوم ۴ خوابه را دارم.”

به این ترتیب شما به جای اینکه دو پلان بسازید که یکی طبقه اول و طبقه دوم ۳ خوابه داشته باشد، و دیگری طبقه اول و طبقه دوم ۴ خوابه داشته باشد، یک پلان طبقه اول ساخته اید با دو پلان طبقه دوم ۳ خوابه و ۴ خوابه. هم در وقت و هزینه صرفه جویی کرده اید و هم تغییرات را ساده کرده اید. میپرسید چطور؟ اگر مدیر شما بعدا تصمیم بگیرد که به طبقه اول یک اتاق هم اضافه کند، شما فقط پلان ‘خانه’ تغییر میدهید. به همین سادگی.

این مثال یکی از فواید استفاده از برنامه نویسی شیئ گرا است. طی درس های آینده، این مبحث را بیشتر برایتان توضیح میدهیم.

 




کلمات کلیدی : آموزش شی گرایی

نظر بدهید

8 دیدگاه برای “برنامه نویسی شیئ گرا چیست و چرا خوب است؟ – درس اول

  • یکی گفته
    10 آوریل 17

    کلا نفهمیدم😐
    برنامه نویسی c++کار میکنم، ولی اصلا نفهمیدم چی شد. میشه توضیح بدید؟

    • علیرضا صبوئی گفته
      10 آوریل 17

      به سراغ درسهای بعدی برید تا بیشتر متوجه بشید.

  • فرزاد گفته
    10 آوریل 17

    سلام جناب آقای صبوئی : کارتون بسیار عالیه اینقدر جالب توضیح داده اید که لذت بردم فکر نکنم کسی در این حد تونسته باشه آموزش های عالی گذاشته باشه توی سایت بهر حال خواستم تشکر ویژه ای داشته باشم انشالله همیشه همراه خانواده ات پایدار و سلامت باشی آرزوی موفقیتهای روز افزون

    • علیرضا صبوئی گفته
      10 آوریل 17

      زنده باشید. میتونید ویدیوهای این درس ها رو در ویترین دانلود کنید.
      vitrin.alborzcode.com

  • حسام گفته
    10 آوریل 17

    مهندس یه خدا قوت بهتون بکم هم بابت آموزش های فوق العادتون هم بابت طراحی سایتتون که هردو بسیار عالی هستن , انشالله که همیشه موفق و پر انرژی باشین

    • علیرضا صبوئی گفته
      10 آوریل 17

      ممنون حسام عزیزم

  • امیر میرطاهری گفته
    10 آوریل 17

    عالی عالی عالی بی نهایت عالی……
    علیرضا خان بهتون تبریک میگم و باعث افتخار ایران و ایرانی هستین به امید روزی که اساتید و حوزه آموزشی با فعالیت های شما دستکم یه تجدید نظر درباره روش خودشون داشته باشن . من رشته ام برق هست خیلی لذت بردم امیدوارم در آینده نزدیک شاهد موفقیت هرچه بیشتر شما و گروهتون و همچنین قدردان این تلاش مضاعفتون در جهت یادگیری باشم . آرزوی بهترین ها براتون دارم.

    • علیرضا صبوئی گفته
      10 آوریل 17

      امیر عزیزم ممنون از انرژی ای که به من و تیمم دادید.