PDA

View Full Version : حرفه ای: کلاسهای پایه در هر پروژه برنامه نویسی شامل چه دستورات و متد هایی میشوند؟



hmahdavi921
سه شنبه 12 خرداد 1394, 16:10 عصر
با سلام
در هر پروژه های تعدادی کلاسهای پایه نوشته میشن که ساختار ها و دستورات پر استفاده رو در اونها مینویسن .حالا این دستورات پر استفاده چیا هستند؟
دوستان لطفا راهنمایی بفرمائید

RmeXXXXXXXXX
سه شنبه 12 خرداد 1394, 16:35 عصر
اینچنین نیست! بهتره بگیم کلاس هایی که همنوع هستند و مشخصات و رفتارهای مشابه دارند رو طی یک سلسله مراتب قرار میدیم.
کلاً هروقت بین دو شی رابطه " هست " (is a)معنا بده میگیم این دو کلاس رابطه وراثت دارند. مثلاً TextBox یک Control "هست" بدین طریق رابطه وراثت رو تشکیل میدیم.
حالا چه متدهایی باید باشند بسته یه نوع ها و کاربردشون داره. اصلاً نمیشه چیز ثابتی گفت. بسته به سناریو داره. و کلمه "پر استفاده" اینجا معنی نداره بلکه کلمه "مشترک".
مطالب زیادی رو (بیشتر بصورت برخط) میتونید درمورد شی گرایی یافت کنید.

در ادامه هم بگم اگه شیی بتونه کاری رو انجام بده (can do) از اینترفیس استفاده میکنیم. مسلما همه کلاسها میتونن کاری انجام بدن ولی آیا نیاز به اینترفیس دارند؟ بسته به سناریو داره!

hmahdavi921
سه شنبه 12 خرداد 1394, 16:55 عصر
اینچنین نیست! بهتره بگیم کلاس هایی که همنوع هستند و مشخصات و رفتارهای مشابه دارند رو طی یک سلسله مراتب قرار میدیم.
کلاً هروقت بین دو شی رابطه " هست " (is a)معنا بده میگیم این دو کلاس رابطه وراثت دارند. مثلاً TextBox یک Control "هست" بدین طریق رابطه وراثت رو تشکیل میدیم.
حالا چه متدهایی باید باشند بسته یه نوع ها و کاربردشون داره. اصلاً نمیشه چیز ثابتی گفت. بسته به سناریو داره. و کلمه "پر استفاده" اینجا معنی نداره بلکه کلمه "مشترک".
مطالب زیادی رو (بیشتر بصورت برخط) میتونید درمورد شی گرایی یافت کنید.

در ادامه هم بگم اگه شیی بتونه کاری رو انجام بده (can do) از اینترفیس استفاده میکنیم. مسلما همه کلاسها میتونن کاری انجام بدن ولی آیا نیاز به اینترفیس دارند؟ بسته به سناریو داره!

کلمه مشترک درسته منم تو ذهنم همین فکر رو میکردم اما یه جور دیگه نوشتم.در مورد کلاسهای هم نوع و موارد استفاده از واسط میتونین بیشتر توضیح بدین؟ منبع خاصی رو سراغ دارین که در این مورد بتونم اطلاعات بیشتری رو کسب کنم؟

RmeXXXXXXXXX
سه شنبه 12 خرداد 1394, 17:10 عصر
مثلاً متغیر از نوع String یک مقدار ازنوع خودش رو نگه میداره و بس! نوع int هم همینطور. ولی فقط مقدار متغیر String رو میتونید با حلقه foreach پیمایش کنید! چرا؟ String یک کلاس با سلسه مراتب وراثت خودش ولی چون میتونه اعضاش رو شمارش کنه (یکی یکی پیماش کنه) اومده و اینترفس IEnumerable (رابط قابل شمارش بودن )رو پیاده سازی کرده! اگر اینترفیسی داشته باشم برای ماشین حساب و این نوع داده اونو پیاده سازی کنه مسلما میتونه بجای یک ماشین حساب هم ازش استفاده کنید درحالی در عمل ربطی بهش نداره!

توی گوگل "مبانی شی گرایی) رو جستجو کنید.
سایتی که میتونه بعنوان مرجع باشه:
http://agiledevelopment.ir/ebook/cover/

بعد از اینها حتمن سری به سایت مرجع دانت بزنید:
http://www.dotnettips.info/post/1509/%D8%A7%D8%B5%D9%88%D9%84-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B4%DB%8C-%DA%AF%D8%B1%D8%A7-solid-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-%D8%A7%D8%B5%D9%84-srp

chikar
سه شنبه 12 خرداد 1394, 21:23 عصر
بذارید یه مثال بزنم بهتر متوجه می شید
کنترل ها مثل تکس باکس، باتن و ... رو در نظر بگیرید، این کنترل ها چه خصوصیات مشترکی دارند؟ من بهتون می گم:
1 - همشون نسبت به والدشون یه ختصاتی دارند مثلا 4 تا از بالا 5 تا از جپ(geometry)
2- همشون طول و عرض دارند
3- همشون قابلیت تغییر ظاهر مشترک مثل پس زمینه رو دارند
و ....
حالا یه کلاس پایه می نویسیم که همه این خصوصیات رو داشته باشه، بقیه کنترل ها از این کلاس این خصوصیات رو ارث می برند و دیگه خودشون اون ها رو نمی نویسند به حاش هر کنترل متدهای شخصی خودش رو می نویسه، حالا هر کنترل یه سری متد و خواص مختص خودش داره و یه سری متدی که بین همه مشترک است و ارث برده اون هارو
موفق باشی

davidrobert
سه شنبه 12 خرداد 1394, 23:09 عصر
در کلاس ها از کد های که زیاد مورد استفاده قرار میگرد استفاده میکنیم که شامل ، تاریخ شمسی ، ساعت ، دستور خروج ، بکاپ و ریستور ، پیام های تکراری ، تبدیل عدد به حرف که به وسیله کلاس فقط یک بار این کد ها رو مینویسم و فقط صداش میزنیم و سرعت کد نویسی بالا میره چون فقط یک بار کد نویسی صورت میگیره