اگر راجع به ADO.NET چیزی نمیدونید و دوست دارید با دیتا بیس کار کنید بازم اینجا سر بزنید ضرر نداره که . . .
چون احساس کردم نیاز به یه سری اطلاعات راجع به برنامه نویسی شی گرا دارید واستون این مقاله رو میذارم :
بخش اول---------------------------
توضیحی اجمالی راجع به تاریخچه برنامه نویسی:
قبل از سال 1950 یعنی زمان پیدایش وایجاد اولین زبان سطح با لا تقریباً برنامه نویسی به معنای امروزی وجود نداشت خو . زیرا در آن زمان برنامه هایی باحجم های پایین وکوچک توسط زبان اسمبلر نوشته میشد.
اما بعد از سال 1950 و با ایجاد اولین زبان سطح بالا امکان ایجاد برنامه هایی چندین هزار خطی فراهم شد وبه همین دلیل برنامه نویسی از اهمیت خاصی برخوردار گشت .
در این برهه زمانی برنامه نویسی دارای هیچگونه استاندارد یا روش خاصی نبود وبه همین علت پس از گذشت چند سال برنامه نویسان متوجه اشکالاتی شدند که نیاز به تعریف یکسری استاندارد را تقویت کرد(نه... آخه چرا آزادی رو کم میکنین!) .
اشکالاتی از قبیل اینکه:
این روند از چند جهت فقط برای برنامه های کوچک مفید بود.مثلاً نوشتن برنامه های بزرگ بسیار مشکل بود واز آن مهمتر سختی مرحله اشکالزدایی برنامه بود ویا برنامه نویس ناچار بود برای اجرای یک عملیات 5 خطی که به طور نامنظم(غیر قابل پیاده سازی توسط حلقه ها) در 100 محل از برنامه قرار داشت .100 بار قطعه کد مربوطه را پیاده سازی کند. که هم باعث خستگی برنامه نویس میشد و هم باعث بلندی برنامه میگشت.ومشکلات دیگری از این قبیل دیگه...
برای رسیدن به یک استاندارد برای غلبه بر مشکلات ذکر شده در سال 1960 اولین زبان ساخت یافته ایجاد شد.
اساس این روش بر تجزیه برنامه به زیر برنامه ها یی است که هر یک وظیفه اجرای بخشی از برنامه را بر عهده دارند ودر قالب هایی به نام تابع پیاده سازی میشوند.
با ظهور این روش امکان ایجاد برنامه هایی با حجم های چندین ده هزار خطی فراهم شد و هزینه نگه داری آنها نیز از قبل خیلی کمتر شد.
اما به مرور زمان در این روش نیز ضعفهایی احساس شد که منجر به پیدایش روش کامل تری به نام روش ساخت یافته گردید که در ادامه بیشتر راجع به آن بحث خواهیم کرد.
بخش دوم---------------------------
توضیحاتی درمورد برنامه نویسی ساخت یافته:
همانطور که گفته شد روش ساخت یافته در زمان پیدایش کمک زیادی به برنامه نویسان کرد . از جمله مزایای آن میتوان به موارد زیر اشاره کرد:
ساده تر شدن پیاده سازی الگوریتمها(تجزیه به توابع)
افزایش خوانایی برنامه ها
آسان شدن اشکالزدایی برنامه ها
امکان ایجادبرنامه هایی حجیم و پیچیده تر.
امکان استفاده از توابع از قبل نوشته شده(مثل توابع کتابخانه ای)
و....
اما بعد از گذشت چند سال نقاط ضعفی در این روش کشف شد که منجر به پیدایش تدریجی روش شئ گرا گردید.
در بخش های بعدی به بعضی از ضعفهای عمده آن اشاره خواهیم کرد.
(واقعا این جونور دو پا به همنوعش که هیچ به برنامه های بی زبون هم وفا نمیکنه!  
واقعا که این جانور ۲پا بد ادا و تنوع طلبه !!...
e e e به نظرمیاد از موضوع پرت شدم! پس تا تمام زندگیم از دهنم در نرفته قضیه جمع میکنم... )
بخش سوم--------------------------
بررسی روش شئ گرا:
بعد از بررسی اجمالی تاریخچه برنامه نویسی ومعرفی اصول روش ساخت یافته میخواهیم به بررسی روش شئ گرا بپردازیم.
روش شئ گرا از چند دیدگاه قابل بررسی است که در ادامه به تبیین هر یک از دیدگاه ها خواهیم پرداخت.
1.3 اهداف روش شئ گرا:
هدف اصلی این روش که باعث ایجاد تفاوتهای ساختاری با روش ساخت یافته شداین بود که برنامه ها به واحدهای کوچکتری به نام شئ (همون چیز خودمون! )تقسیم شوند که وظیفه ایجاد برنامه و روابط بین اشیاء بر عهده خود اشیاء باشد تا از این طریق نه تنها از حجم کد نویسی کم شود بلکه برنامه نویس بیشتر زمان وفکر خود را روی طراحی سیتم مورد نظر متمرکز کند.
برای دستیابی به این هدف لازم است که برنامه به صورت یک دنیای واقعی از اشیاء (چیز! )که ارتباطی واقعی دارند دیده شود.
زمانی که توسط این دیدگاه اشیاء مورد نیاز توسط برنامه نویس ایجاد گردد وظیفه سیستم تنها(آخی... سیستم بد بخت... حیوونی تنهاe ...! eبه نظر میاد اشتباه شده ...! این تنها که اون نبود ) کنترل روی اشیاء وروابط بین آنها خواهد بود.
به عنوان مثال یک پنجره را در نظر بگیرید .
رسم شئ پنجره بر عهده خودش میباشد و برنامه نویس هنگام طراحی سیستم هیچگونه نگرانی (یعنی سرخوش بودن برنامه نویس در این مطلب لازم است و امری جبری به حساب می آید! ) راجع به اینگونه مسائل نخواهد داشت.
همین مساله باعث راحت تر شدن اشکالزدایی برنامه خواهد شد زیرا به محض وقوع یک خطا در برنامه برنامه نویس میداند که اشکال یا از شئ(همون چیزه دیگه... باید خودتون بدونین الان دیگه...! ) است و یا ازسیستم (مثلا چنجر خرابه! ) واینکه اشکال از جای دیگری نمی تواند باشد.در نتیجه به سرعت عملیات اشکالزدایی انجام خواهد شد.
روش برنامه نویسی شئ گرا میگوید برای دستیابی به اهداف فوق لازم است به بالاترین سطح از "Abstraction" برسیم.
حال به توضیح بیشتر راجع به مفهوم "abstraction" میپردازیم.
Abstraction در لغت به معنای تجرد یا انتزاع است.
وبه مفهوم یک برداشت واحد از مجموعه مشاهدات میباشد.
در واقع انتزاع همان نیرویی است که با دیدن تعداد زیادی درخت مفهوم جنگل را در ذهن انسان تداعی میکند یا با دیدن مجموعه ای از پیکسل های صفحه نمایش کامپیوتر یک تصویر خاص را در ذهن ایجاد میکند.
حال به توضیح این مفهوم در برنامه نویسی شئ گرا میپردازیم.
در این روش برنامه نویس باید سعی کند اشیایی راتعریف کند که برنامه را از تعریف اشیاء بیشتر بی نیاز کند. در واقع او همواره باید به دنبال اشیاء مادر بگردد.
یعنی بعد از یافتن توابع و داده های مورد نیاز برای پیاده سازی سیستم مورد نظر باید مجموعه ای از توابع و داده ها را توسط "یک" کلاس (شئ) پیاده سازی کند.(انتزاع)
ضمناً این کلاس برای اجرای توابع درونی خود باید حتی المقدور به کلاس های دیکر نیازی نداشته باشد وبه نوعی مستقل از سایر اجزای سیستم باشد واین همان مفهوم تجرد یا abstraction در برنامه نویسی شئ گرا می باشد.
به عنوان مثال فرض کنید در حال نوشتن برنامه ای هستید که بخشی از آن مربوط به طراحی سیستم یک ماشین است.
هر ماشین دارای یک سری خصوصیات از قبیل : نام و رنگ و حجم موتور و تعداد سرنشین و شماره شاسی و . . . میباشد.
در عین حال دارای مجموعه ای از رفتارها است که باید توسط توابع برای ماشین پیاده سازی شود.
رفتارهايي از قبیل:
حرکت کردن و ایستادن و حمل مسافر و شتاب داشتن و تعویض دنده هاو . . .
که هر کدام از این توابع نیاز مستقیم به بعضی از خصوصیات ماشین دارند که باید توسط پارامتر به آنها پاس شوند. اگر بخواهیم به روش ساخت یافته این برنامه را طراحی کنیم باید هر یک از این توابع را به صورت کاملاً جاگانه تعریف کنیم و پارامتر های مورد نیاز را نیز به آنها پاس کنیم.
یعنی در پایین ترین سطح از abstraction به طراحی بپردازیم.
ولی اگر به روش شئ گرا به طراحی سیستم بپردازیم میتوانیم یک کلاس به نام ماشین به شکل زیر طراحی کنیم دراين حالت که توابع به شکل زیر مجموعه ای از یک شئ در آمده اند میتوان گفت که به سطح بالاتری از abstraction رسیده ایم. همان طور كه گفته شد در اين روش نیازی به ارسال پارامتر ها نیست زیرا تمام توابع به تمام خصوصیات دسترسی دارند.
کلاس (شئ) ماشین
|
خصوصیات:(properties)
نام
رنک
شماره شاسی
تعداد سرنشین
و . . . |
رفتارها:(metod)
حرکت کردن
ایستادن
حمل مسافر
تعویض دنده ها
و . . .
|
ارسال به:
::
::
::
::
::
::
|