---------------------------------4.4.3

:polimorphism

 

 این مفهوم ویا ویژگی روش شئ گرا امکان پیاده سازی چند تابع با یک نام و ساختارهای متفاوت را برای برنامه نویس فراهم میکند.

بعد از عنوان شدن مفهوم وراثت یکسری مشکلات پیش روی برنامه نویسان قرار گرفت که منجر به پیدایش مفهوم" چند ریختی" گردید.

برای درک مشکلات ذکر شده توجه شما را همان مثال ماشین ها جلب مینماییم.

تصور کنید یک کلاس پدر به نام کلاس ماشین ایجاد کرده ایم  ورفتارهای حرکت کردن و ایستادن آن را از نوع حفاظت شده تعریف کرده ایم وسپس آنها را به دو فرزندش یعنی کلاسهای کامیون و سواری به ارث داده ایم و سپس دو فرزند به نامهای بنز و بی ام و برای کلاس سواری تعریف کرده ایم.

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

برای رفع این مشکل بحث چند ریختی مطرح شده است  یعنی برنامه نویس میتواند تابعی هم نام با تابع حرکت کردن یا ایستادن ولی با ساختای متفاوت ایجاد کند.

برای پیاده سازی این مفهوم ا دو عبارت زیر استفاده میکنیم:

--------------------------------------

Over load  نام یکسان  (پارامتر ها متفاوت)

 

 

 

 

              پیاده سازی یکسان

 

 

 

 

-------------------------------------------------

 

Over write نام یکسان   (پارامترها یکسان)

            

 

 

 

              پیاده سازی متفاوت

 

 

 

----------------------------------------5.3

 

 

روش برنامه نویسی شئ گرا:

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

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

  codd

میگوید برای رسیدن به بهترین و کمترین تعداد کلاس باید سه دسته کلاس زیر را در برنامه تعریف کرد:

PERSON(1

 place(2

things event(3

 

یعنی بهتر است ابتدا برای هر یک از اشخاص یا انسان های برنامه یک کلاس طراحی کنیم

وسپس برای مکان های مورد نیاز سیستم  و در نهایت برای نقاضا ها یاخواسته ها ی اشخاص در سیستم کلاس هایی را تعریف کنیم.

 

نويسنده: سيدمحمود شجاعي كياسري