PDA

View Full Version : سوال: تفاوت شی گرایی با رویدا گرایی ؟



csvbcscp
شنبه 03 فروردین 1392, 21:56 عصر
سلام
یکی از دوستان در مورد مثالی که در کتاب معروف سی پلاس پلاس دایتل اند دایتل به عنوان مبحث مهندسی نرم افزار(برنامه ATM بانک) در انتهای هر فصل آورده شده از من سوالی پرسید که من نتونستم جواب درستی به ایشون بدم ،لطلفا شما راهنماییم کنید..
برای پیاده سازی این برنامه از کلاس های متفاوتی همچون (ATM,صفحه نمایش،حساب و...) آورده شده و در نهایت این کلاس ها با همکاری با هم برنامه ATM رو به شیوه شی گرایی به وجود آورده اند
دوست ما همین برنامه رو با استفاده از یک جدول(Table) که پسورد و موجودی افراد رو نگهداری می کنه و طراحی یک فرم ساده که دکمه های برداشت و واریز و مشاهده میزان موجودی در اون گنجانده شده ساخته،که در اون با زدن دکمه برداشت به پایگاه داده برنامه می ره و مبلغ درخواستی رو از عدد موجود در جدول کم می کند و برای گرفتن موجودی هم فقط محتویات رکورد مربوط به اون یوزر خاص رو از جدول واکشی کرده و به کاربر نشون میده...(حالا این یه نمای کلی از پروژه بود و وارد جزئیات کار نشدم)
سوال اینجاست که چه نیازی به تعریف اون همه کلاس و بعد ایجاد شی از اون کلاس ها و بقیه ماجرا وجود داشت ؟؟
متشکرم

csvbcscp
جمعه 16 فروردین 1392, 14:52 عصر
کسی جواب نمی ده ؟
من جواب دوست خوبم آقای مرتضی گیتی رو می زارم

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

linux
شنبه 17 فروردین 1392, 02:32 صبح
سلام
یکی از دوستان در مورد مثالی که در کتاب معروف سی پلاس پلاس دایتل اند دایتل به عنوان مبحث مهندسی نرم افزار(برنامه ATM بانک) در انتهای هر فصل آورده شده از من سوالی پرسید که من نتونستم جواب درستی به ایشون بدم ،لطلفا شما راهنماییم کنید..
برای پیاده سازی این برنامه از کلاس های متفاوتی همچون (ATM,صفحه نمایش،حساب و...) آورده شده و در نهایت این کلاس ها با همکاری با هم برنامه ATM رو به شیوه شی گرایی به وجود آورده اند
دوست ما همین برنامه رو با استفاده از یک جدول(Table) که پسورد و موجودی افراد رو نگهداری می کنه و طراحی یک فرم ساده که دکمه های برداشت و واریز و مشاهده میزان موجودی در اون گنجانده شده ساخته،که در اون با زدن دکمه برداشت به پایگاه داده برنامه می ره و مبلغ درخواستی رو از عدد موجود در جدول کم می کند و برای گرفتن موجودی هم فقط محتویات رکورد مربوط به اون یوزر خاص رو از جدول واکشی کرده و به کاربر نشون میده...(حالا این یه نمای کلی از پروژه بود و وارد جزئیات کار نشدم)
سوال اینجاست که چه نیازی به تعریف اون همه کلاس و بعد ایجاد شی از اون کلاس ها و بقیه ماجرا وجود داشت ؟؟
متشکرم
وقتی دستها را میشود کاسه کرد و آب را از توی دست خورد چه نیازی بوده تا بشر کاسه را بسازه. وقتی می‌شه با ۲ تا برگ آدم خودشو بپوشونده و ستر عورت کنه لباس به چه دردش می‌خورده وقتی پیاده می‌شده از شهری به شهر دیگر رفت چرا ماشین ساخته شد.
حالا از اول در کتابهایی که برای سی شارپ نوشته شده مروری انجام بده. آنوقت یادتون می‌یاد که چه نیازی بوده تا به شی‌گرایی برسیم.

C#‎_best_Programmer
شنبه 17 فروردین 1392, 09:35 صبح
ببین عزیزم یکم در مورد شی گرایی تحقیق کن ببین هر انسانی واسه خودش رفتار منحصر به فردی داری و یه سری خصوصیاته مشابه تو بحث شی گرایی مام میام در واقع رفتار و خصوصیات و خلق می کنیم تا ازشون استفاده کنیم یه پروژه ساختمونیو در نظر بگیر آیا میشه یه نفر هم مهندس باشه هم کارگر هم پیمان کار هم مدیر پروژه دقسقا تو شی گراییم همین بحث مطرحه که ما بیام وظایف بین اشیا تقسیم کنیم

csvbcscp
یک شنبه 18 فروردین 1392, 07:01 صبح
متشکرم از پاسخ هاتون
حرف شما کاملا درست و منطقیه
کتاب های خیلی خوبی در زمینه شی گرا نوشته شده،ومزایای استفاده از شی گرا برای همه روشنه،با این حال خیلی از دوستان با نوشتن برنامه به سبک شی گرا مشکل دارند،چون ما عموما از اول با زبان های ساخت یافته ای مثل سی و پاسکال شروع به برنامه نویسی می کنیم
وبرنامه نویسی رو خلاصه می کنیم به چند تا تابع که با فراخونی هم در نهایت برنامه ما رو تشکیل میدن
وقتی برای اولین با با محیط شی گرای ویژوال بیسیک 6 آشنا می شیم،شگفت زده می شیم ،واکثرا تصور می کنیم که این دکمه ها و فرم ها و ... یعنی شی و برنامه ای که ما در این محیط می نویسی برنامه شی گراست
این تفکر تو سال های متمادی که با ویژوال بیسیک کار می کنیم قوی میشه، یعنی ما تبدیل می شیم به یک رویدادگردان،که برای نوشتن یک برنامه اول اینتر فیس رو طراحی می کنیم و سپس برای هر کدام از رویداد های اشیا روی فرم کد می نویسیم(مثلا اگه رو ی فلان دکمه کلیک کرد،فلان مار رو انجا بده و ...)
و این می شه برنامه نویسی به اصطلاح شی گرا !!
سوال من این بود که چطور میشه این تفکر رو عوض کرد،کتاب های uml , مفاهیم شی گرایی خوب هستند اما خودتون می دونید که جوابگو نیستن و تا وارد عمل نشیم، چیزی به دست نیاد
برای انجام پروژه های شی گرا هم نیاز به مهارت کافی هست که یک فرد مبتدی نممیتونه واردش بشه
به همین خاطر من سوال بالا رو مطرح کردم که دوستان نظرشونو درمورد اون پروژه خاص که با همین هدف ایجاد شده بدن
متشکرم