/
  • مشکل با مفهوم کلاس

  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 5
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی مشکل با مفهوم کلاس
    نویسنده پیام
    mojtabadj آفلاین
    مجتبی پوراصغر
    ****

    ارسال‌ها: 298
    تاریخ عضویت: ۱۳۸۸ بهمن ۴
    اعتبار: 2
    تشکرها : 87
    ( 57 تشکر در 40 ارسال )
    ارسال: #1
    مشکل با مفهوم کلاس
    سلام دوستان عزیز

    من با مفهوم کلاس تو php مشکل دارم

    من نمیدونم کی باید کلاس تعریف کنم؟

    مثلا بعضی جاها میبینم مشکلم با include حل میشه ولی تردید دارم که اون چیزی رو که میخوام

    include کنم کلاس بگیرم یا یک سری تابع رو تو یه فایل include کنم؟

    اصلا چه زمانی باید کلاس تعریف کنیم؟Huh
    ۱۳۸۹ ارديبهشت ۸ ۰۸:۴۴ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    ARA آفلاین
    Allahyar Allahparast
    **

    ارسال‌ها: 48
    تاریخ عضویت: ۱۳۸۸ مهر ۶
    اعتبار: 0
    تشکرها : 30
    ( 71 تشکر در 20 ارسال )
    ارسال: #2
    RE: مشکل با مفهوم کلاس
    کلاس ها در اصل برای جلو گیری از تکرار کد و بهینه سازی کد و دقت در کد نویسی و .... تعریف می کنند
    __________________________________________________________________________
    آموزش PHP (مقدمه) | سایت مپ و عنکبوت گوگل
    ۱۳۸۹ ارديبهشت ۹ ۰۳:۱۹ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    mojtabajml آفلاین
    مجتبی جمالی
    ***

    ارسال‌ها: 134
    تاریخ عضویت: ۱۳۸۸ آذر ۳۰
    اعتبار: 2
    تشکرها : 20
    ( 119 تشکر در 72 ارسال )
    ارسال: #3
    RE: مشکل با مفهوم کلاس
    شما باید دید شی گرایی داشته باشید بخاطر این که شی گرایی یک مفهوم مشترک برای طراحی و پیاده سازی سیستم های نرم افزاریه، پس بهتره اول مفهوم شی گرایی را یاد بگیرید و بعد روش برنامه نویسی شی گرا در زبان php!
    مطمئنا کمک زیادی در ساخت نرم افزار های بزرگ برای بالا بردن انتزاع و استفاده مجدد از کد و کاهش پیچیدگی به شما خواهد کرد.
    ۱۳۸۹ ارديبهشت ۹ ۰۲:۱۲ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : shgninc
    amir.s آفلاین
    عضو
    ***

    ارسال‌ها: 145
    تاریخ عضویت: ۱۳۸۷ دي ۱
    اعتبار: 3
    تشکرها : 453
    ( 186 تشکر در 99 ارسال )
    ارسال: #4
    RE: مشکل با مفهوم کلاس
    سلام

    منم همین مشکل رو داشتم . این ابهام برام وجود داشت که چطوری می تونه شی گرایی میتونه از تکرارها جلوگیری کنه و ...

    مفهومی رو که ارائه میدم بیشتر به سرویس گرایی می خوره تا شی گرایی ، اما برای درک نکات خوبی داره .

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

    بذارید یه مثال عملی بزنم .

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

    اطلاعات مورد نیاز وصل شدن به دیتابیس رو وارد میکنید .
    روش اتصال رو انتخاب میکنید.
    به دیتابیس وصل میشید .mysql_connect
    موفقیت اتصال رو چک میکنید.
    در صورت نا موفق بودن خطا برمیگردونید.
    در صورت موفقیت اتصال دیتابیس مورد نظر رو انتخاب میکنید . mysql_select_db
    در صورت به وجود نیومدن خطایی تا این مرحله.
    کوئری رو اجرا میکنید . mysql_query
    جواب رو میگیرید و وجودش رو بررسی میکنید.
    جواب رو برای باز کردن و استفاده پروسس می کنید . mysql_fetch_...
    خروجی های مورد نظر به دست میاد .
    ارتباط رو با دیتابیس قطع میکنید . mysql_close

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

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

    در مورد دیتابیس ، وقتی شما از شی استفاده کنید فقط کافیه :
    فقط یک بار در تمام برنامه خود این کلاس رو اجرا کنید .
    در هر زمان که نیاز داشتید کوئری رو اجرا کنید و نتیجه رو پروسس شده و آماده دریافت کنید .

    در واقع خود شی دیتابیس ، ارتباط رو بسته به نیازش انتخاب و ایجاد کرده ، تمام مراحل مورد نیاز رو برای اجرا کوئری انجام میده و درخودش ذخیره میکنه . کوئری رو اجرا کرده ، خروجی رو دریافت ، پروسس ، مدیریت خطا ، تفکیک ، ایمن سازی و ... انجام داده و نتیجه رو به صورت یک خروجی آماده در اختیار شما قرار داده . قابلیت ذخیره و حفظ یک ارتباط امن رو در کل برنامه شما داره و نیازی به اتصال های مکرر و ... نیست . درنتیجه با حجم کمتر پروسس و فشار به سرور ، کمترین میزان کدنویسی برای برنامه نویس ، دقیق ترین خروجی رو به صورت سالم در اختیار شما قرار میده .

    در واقع برنامه شما به صورت یک خط مونتاژ خواهد بود که تولیدات واحد های مختلف شرکت رو گرفته و در کنار هم قرار میده تا محصول رو به کاربر ارائه بده.
    اینطوری از تکرار مکررات جلوگیری میشه. سریع تر کد میزنید . هر واحد به صورت جدا و کپسوله شده کار میکنه . درصورت نیاز به تغییر در هر منبع می تونید واحد مرتبط رو تغییر بدید .فرض کنید شما برنامه رو همیشه با اتصال فارسی به دیتابیس اجرا کردید و حالا منبع ( یا همون دیتابیس ) تغییری در زبان خودش داشته ، دیگه نیازی نیست خط به خط برنامه خودتون رو بررسی کنید و تمام اتصالات رو تغییر بدید. کافیه که به شی دیتابیس رفته و کانفیگ اون رو تغییر بدید و تمام برنامه با زبان جدید کار خواهد کرد .

    امروزه فریم ورک ها ، اساسا به نوعی، شی های مختلف و کارآمدی هستند که در اختیار شما قرار دارند . هرچقدر این شی های کارآمدتر باشند ، استفاده از آنها ساده تر هست . در فریم ورک های Glue Stack و Full Stack شما خط مونتاژ هایی با واحد های مستقل و یا یکپارچه در اختیار دارید، تا ماشین خودتون رو مونتاژ کرده و در اختیار کاربر بذارید. Big Grin

    میشه مثال ها و دلایل زیادی رو برای استفاده از شی گرایی بیان کرد. اما وقتی شما دیدگاهی این چنینی به شی گرایی داشته باشید ، بیان خیلی از دلایل غیر ضروری هست و خودتون درکش میکنید . Wink
    ۱۳۸۹ ارديبهشت ۹ ۰۳:۳۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : mojtabadj ahora
    oia آفلاین
    محمد ثانی
    *****

    ارسال‌ها: 2,014
    تاریخ عضویت: ۱۳۸۷ آذر ۲۶
    اعتبار: 66
    تشکرها : 2330
    ( 2091 تشکر در 1290 ارسال )
    ارسال: #5
    RE: مشکل با مفهوم کلاس
    برای شروع شی گرایی باید برید سراغ مهندسی نرم افزار و طراحی شی گرا مثه UML اونوقت دیگه می دونه که چطور استفاده کنی Sleepy
    ۱۳۸۹ ارديبهشت ۹ ۰۸:۴۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    shgninc آفلاین
    سید سجاد شاهچراغیان
    ***

    ارسال‌ها: 1,493
    تاریخ عضویت: ۱۳۸۹ خرداد ۱۹
    اعتبار: 32
    تشکرها : 1402
    ( 666 تشکر در 504 ارسال )
    ارسال: #6
    RE: مشکل با مفهوم کلاس
    کلاس هم مثل آرایه ها، لیست های پیوندی و... یک ساختار تعریف داده است ولی با سبکی متفاوت که امروزه بیشترین استفاده در اکثر زبانهای برنامه نویسی را دارد. همانطور که mojtabajml عزیز گفت بهتر است شما ابتدا مفاهیم شی گرایی را متوجه شوید بعد می توانید با هر زبان برنامه نویسی آن را پیاده سازی نمایید.Wink
    __________________________________________________________________________
    سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
    انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

    [تصویر:  ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
    ۱۳۸۹ خرداد ۲۴ ۰۵:۴۷ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS