PDA

View Full Version : گفتگو: شی گرایی مسئله این است!



ricky22
چهارشنبه 21 بهمن 1388, 10:57 صبح
سلام دوستان برنامه کوچیکی نوشتم برای مقاصد اموزشی خودم که سعی کردم اصول شی گرایی و معماری چند لایه رو در اون پیاده سازی کنم می خواستم دوستان بررسی کنند
می خواستم دوستان بررسی کنند و منو راهنمایی کنند
با تشکر
شرح برنامه
کلاس DDl برای انجام اعمال متداول در sql server مثل insert و update و ...
کلاس Security برای حفظ امنیت برنامه که فعلا فثط یک متد داره
کلاس email برای ارسال email و بعد ها دریافت رو هم به اون اضافه می کنم.
کلاس validation برای اعبار سنجی و rule های برنامه
یک کلاس به عنوان contact که متد های در اون هست برای ساخت کاربر جدید
حذف کاربر و ... که اون هم فعلا یک متد داره
می خواستم بدونم من دید صحیحی از شی گرایی دارم؟
لطفا بررسی کنید و نظراتتون رو بگید.
لازم به ذکر است فایل ضمیمه شده فقط شامل چند تا کلاس است و پروژه کامل نیست.

keivan mousavi
چهارشنبه 21 بهمن 1388, 12:11 عصر
ویژوآل استادیو یک زبان OBJECT ORIENTED هستش و دید برنامه نویس رو روی این منطق معطوف میکنه در واقع شما نمیتونید از این زبان به صورت ماژول یا سیستماتیک استفاده کنید پس هر برنامه ای بنویسید درون آن شی گرایی رعایت میشه

ricky22
چهارشنبه 21 بهمن 1388, 12:31 عصر
ویژوآل استادیو یک زبان OBJECT ORIENTED هستش و دید برنامه نویس رو روی این منطق معطوف میکنه در واقع شما نمیتونید از این زبان به صورت ماژول یا سیستماتیک استفاده کنید پس هر برنامه ای بنویسید درون آن شی گرایی رعایت میشه
درسته اما من می خواستم بدونم این برنامه ای که نوشتم و این چند تا کلاس مفاهیم شی گرایی در اونا درست رعایت شده و من دیدم درسته یا نه؟
با تشکر

اَرژنگ
چهارشنبه 21 بهمن 1388, 14:30 عصر
ویژوآل استادیو یک زبان OBJECT ORIENTED هستش و دید برنامه نویس رو روی این منطق معطوف میکنه در واقع شما نمیتونید از این زبان به صورت ماژول یا سیستماتیک استفاده کنید پس هر برنامه ای بنویسید درون آن شی گرایی رعایت میشه

چیزی که بیان شد با واقعیت نمیخونه.
شیگرائی نوشتن کد با بنا با اصول و اصلوب است، همینطوری نمیشه هر چیزی را که با یک زبان شیگرائی بهم ببافند بهش بشه گفت شی‌گرائی نوشته شده.

همین تالار پر است از مثالهایی که با زبان شیگرائی نوشته شدن و تمام اصول شیگرائی را میشکنند.

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

ricky22
چهارشنبه 21 بهمن 1388, 14:44 عصر
چیزی که بیان شد با واقعیت نمیخونه.
شیگرائی نوشتن کد با بنا با اصول و اصلوب است، همینطوری نمیشه هر چیزی را که با یک زبان شیگرائی بهم ببافند بهش بشه گفت شی‌گرائی نوشته شده.

همین تالار پر است از مثالهایی که با زبان شیگرائی نوشته شدن و تمام اصول شیگرائی را میشکنند.

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

اَرژنگ
چهارشنبه 21 بهمن 1388, 17:37 عصر
ممنون دوست عزیز
میشه یکم بیشتر توضیح بدی؟
میشه کدای منو بررسی کنی و منو راهنمایی کنی با تشکر

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

در کلاس سکیوریتی بررسی کردن هش کد معنی ندارد، شما باید در نظر بگیرید که هر کلاس که نوشته میشه از خارج از اون کلاس یکی باهاش چطوری میتونه کار کنه، یعنی فکر کنید که به جز هر چی که پابلیک دارد ازش هیچ چیزه دیگری معلوم نیست، و فرض کنید که در مورد اون کلاس هیچ چی نمیدانید و میخواهید ازش استفاده کنید ، مثال:

کلاس ایمیل تنها کلاسی بود که با سادگی میشه تشخیص داد اسمش با استفاده ازش ساده بود .

کلاس دی ام ال:
اشکالات : وابستگی به عناصری که به داتابیس مربوط نیستند . کلاسی که با داتابیس کار میکنه احتیاجی به دانستن در مورد کمبو باکس ندارد.

خوبیها: اینکه کانکشن استرینگ در یکجا جمعه.

در مورد اشکالات به جز شیگرائی میشه از روش کد نویسی ایرادهایه مختلف گرفت، استفاده نکردن از پارامترهایه اس‌کیو‌ال ، بهم چسباندن رشته‌ها ، ...

در ضمن این خط :
// ERROR: Optional parameters aren't supported in C#

دیگر درست نیست ، در سی‌شارپ ۴ اپشنال پارامترها اضافه شدند.

به جایه بررسی کدهایه خودتان به کدهایه پروژها‌یه درست و حسابی از مایکراسافت نگاه بندازید، ایرادهایه این کدهایی را که فرستادید گرفتند فایده‌ای ندارد.

فقط میتونم بگم که از لحاض ایده درست فکر میکنید ولی روشی که پیاده کردید هنوز جایه بهبود دارد.
۳ تا اصل پیشرفتن : ۱.مطالعه ۲.امتهان ۳.مطالعه
کردن است.

در ضمن فقط اینکه کلاسها چی هستند مهم نیست، اینکه با هم چطوری کار میکنند هم مهمه، میشه که همه کلاسها را حتی کاملا درست نوشت و بازهم قاطی پاطی ازشان استفاده کرد.

اگر یک پروژه کوچیک کامل برایه بررسی میفرستادید بهتر بود.

ricky22
جمعه 23 بهمن 1388, 09:26 صبح
اینکه سعی کردید که انکپسولیشن را رعایت کنید از پستتان معلوم بود ولی به این نکات یک نگاه بندازید:

در کلاس سکیوریتی بررسی کردن هش کد معنی ندارد، شما باید در نظر بگیرید که هر کلاس که نوشته میشه از خارج از اون کلاس یکی باهاش چطوری میتونه کار کنه، یعنی فکر کنید که به جز هر چی که پابلیک دارد ازش هیچ چیزه دیگری معلوم نیست، و فرض کنید که در مورد اون کلاس هیچ چی نمیدانید و میخواهید ازش استفاده کنید ، مثال:

کلاس ایمیل تنها کلاسی بود که با سادگی میشه تشخیص داد اسمش با استفاده ازش ساده بود .

کلاس دی ام ال:
اشکالات : وابستگی به عناصری که به داتابیس مربوط نیستند . کلاسی که با داتابیس کار میکنه احتیاجی به دانستن در مورد کمبو باکس ندارد.

خوبیها: اینکه کانکشن استرینگ در یکجا جمعه.

در مورد اشکالات به جز شیگرائی میشه از روش کد نویسی ایرادهایه مختلف گرفت، استفاده نکردن از پارامترهایه اس‌کیو‌ال ، بهم چسباندن رشته‌ها ، ...

در ضمن این خط :
// ERROR: Optional parameters aren't supported in C#‎

دیگر درست نیست ، در سی‌شارپ ۴ اپشنال پارامترها اضافه شدند.

به جایه بررسی کدهایه خودتان به کدهایه پروژها‌یه درست و حسابی از مایکراسافت نگاه بندازید، ایرادهایه این کدهایی را که فرستادید گرفتند فایده‌ای ندارد.

فقط میتونم بگم که از لحاض ایده درست فکر میکنید ولی روشی که پیاده کردید هنوز جایه بهبود دارد.
۳ تا اصل پیشرفتن : ۱.مطالعه ۲.امتهان ۳.مطالعه
کردن است.

در ضمن فقط اینکه کلاسها چی هستند مهم نیست، اینکه با هم چطوری کار میکنند هم مهمه، میشه که همه کلاسها را حتی کاملا درست نوشت و بازهم قاطی پاطی ازشان استفاده کرد.

اگر یک پروژه کوچیک کامل برایه بررسی میفرستادید بهتر بود.
ممنونم دوست خوب خیلی استفاده کردم
1)هش کد را کجا بررسی کنم؟
2)در مورد کومبو باکس و لیست باکس متد ها مربوطه رو کجا بنویسم؟
3)منظورتون از پارامترهای sql چیست؟
4)برای به هم چسباندن رشته ها از کلاس stringbulder استفاده کنم؟
5)من در مورد نگاه کردن به contact به صورت شی درست فکر می کنم؟
دوست عزیز من سعی می کنم یه پروژه کوچیک درست کنم و بفرستم دوستان لطف کنند اشکالات منو بگیرن