سلام آرشان جان،
شی گرایی یه سبک هستش که زبان هایی مثل سی شارپ از اون پشتیبانی می کنن. سبک (یا پاردایم) به نحوه ی نوشتن کد بر می گرده و نه منطق برنامه و نه معماری اون. در نتیجه اگر سی شارپ از شی گرایی پشتیبانی می کنه، دلیلی نیست که هر کدی داخلش نوشته بشه شی گرا باشه بلکه به این بستگی داره که ما به عنوان برنامه نویس کد رو شی گرا می نویسیم یا خیر.
در سمت مقابل سی شارپ یه زبان سطح بالاست و یه سری کار ها رو واسه ما آسون تر می کنه. مثلا وقتی ما یه فرم با تعدادی کنترل ایجاد کنیم، سی شارپ در پس زمینه کد مربوطه رو ایجاد می کنه و این کد عملا شی گرا هستش. به عبارتی در مواردی که سی شارپ خودش برای ایجاد کد اقدام می کنه، این کد غالبا شی گراست.
در نتیجه گیری کلی در سی شارپ بخشی از کد ها توسط ما ایجاد میشه و برخی توسط خودش. کد هایی که ما می نویسیم بستگی به سلیقه ی ما می تونه شی گرا باشه یا نه و کد های ایجاد شده توسط سی شارپ (مثل کد کنترل های روی فرم یا کد سرویس وب) معمولا شی گرا هستش. در نهایت یه برنامه می تونه ترکیبی از کد های شی گرا و غیر شی گرا باشه.
این که شی گرایی اصولی داره یا نه که مسلما داره و یه کد شی گرا می تونه هم درست و هم نادرست پیاده بشه. یعنی برای شی گرا کردن یه کد تنها یه کد شی گرا وجود نداره بلکه این شی گرایی می تونه اشکال مختلفی داشته باشه. مثلا یه کد شی گرا می تونه رفتار بهینه تری با حافظه داشته باشه نسبت به یه کد شی گرای دیگه با منطق مشابه.
آیا شی گرا کردن الزاما به معنی بهتر کردن برنامه است؟ نه، نیست! مثلا در برنامه نویسی یه بازی رایانه، بخش هایی رو به شکل داده گرا (و نه شی گرا) می نویسن چون رفتار بسیار بهینه تری در مقایسه با کد شی گرا برای به کارگیری حافظه ی نهان پردازنده داره و این سبب میشه میزان تاخیر در بازی کاهش پیدا کنه.
در مورد معماری سه لایه باید عرض کنم که مطابق اسمش یه معماریه و نه یه سبک. معماری یه نقشه ی راه کلی برای طراحی برنامه هستش و هیچ دخالتی در سطح کد نداره. ما می تونیم یه معماری رو شی گرا یا غیر شی گرا و یا با ترکیبی از هر دو پیاده کنیم. گرچه پیاده کردن یه معماری مثل معماری سه لایه بدون شی گرایی خیلی کاری جالبی نیست!
پ.ن.: به امید خدا سعی می کنم جواب باقی سوالاتت رو به زودی بدم.
آرمین برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
Bookmarks